티스토리 뷰
2007. 패턴 마디의 길이
import java.util.Scanner;
public class SWEA2007 {
// 210129
// 2007. 패턴 마디의 길이
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
for (int tc = 1; tc<=N; tc++) {
char[] arr = sc.next().toCharArray();
int j=1; // 길이는 1부터 시작
for (int i=0; i<arr.length-1; i++) {
// arr[0] == arr[j]
// arr[1] == arr[j+1]
// .....
for(; j<arr.length-1-i; j++) {
if (arr[i] == arr[i+j]) {
break;
}
}
}
System.out.println("#" + tc + " " + j);
} // for
sc.close();
} // main
}
엄청 어렵게 생각했다.
길이를 1씩 늘리면서
(arr[0] ~ arr[길이]) == (arr[길이+1] ~ arr[길이*2])인지 살펴보고 같으면 (arr[길이*2+1] ~ arr[길이*3]) ~ 끝까지 같은지 살펴보았는데 인덱스 초과 에러가 계속 나서 머리 싸매다가 검색해보고 깨달았다.
패턴마다 같은 문자열이 반복된다면 부분 배열을 전부 비교할 필요가 없다. 앞에서부터 한글자씩 같은지 비교해보면 된다.
문자열의 지옥..
'코딩테스트 > SW Expert' 카테고리의 다른 글
[SWEA] 1284. 수도 요금 경쟁 (0) | 2021.01.30 |
---|---|
[SWEA] 1954. 달팽이 숫자 (0) | 2021.01.30 |
[SWEA] 1926. 간단한 369게임 (0) | 2021.01.29 |
[SWEA] 1859. 백만 장자 프로젝트 (0) | 2021.01.28 |
[SWEA] 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (0) | 2021.01.28 |
댓글