PS

백준 2866. 문자열 잘라내기

tose33 2023. 9. 2. 20:31

https://www.acmicpc.net/problem/2866

 

2866번: 문자열 잘라내기

첫 번째 줄에는 테이블의 행의 개수와 열의 개수인 R과 C가 주어진다. (2 ≤ R, C ≤ 1000) 이후 R줄에 걸쳐서 C개의 알파벳 소문자가 주어진다. 가장 처음에 주어지는 테이블에는 열을 읽어서 문자

www.acmicpc.net

 

행을 잘라내서 열을 읽기 때문에 우선 열을 읽어서 문자열을 만들자.

입력이 다음과 같다면 

 

4 6
mrvica
mrvica
marica
mateja

 

열을 아래부터 읽으면 다음과 같은 문자열들이 만들어진다. 

 

mmmm

aarr

trvv

eiii

jcca

aaaa

 

이 문제에서 결국 구하는건 문자열들을 앞에서 부터 읽어서 중복이 발생하는 최대 길이를 구하는 것이다.

위 예에서는 길이 2 일때가 아래 문자열로 

mm

aa

tr

ei

jc

aa

 

aa 가 중복되기 때문에 2가 최대 길이다.

 

답은 문자열길이(4) - 최대중복발생길이(2) - 1 = 1 이 된다.

 

중복 여부는 set 자료구조를 사용했다.