[SWEA] JAVA / D2 - 패턴 마디의 길이

경운·2025년 11월 18일

SWEA

목록 보기
3/4
post-thumbnail

SWEA - 패턴 마디의 길이

문제 분석

  • 패턴에서 반복되는 부분을 마디라고 부른다
  • 문자열을 입력 받아 마디의 길이를 출력하자

입력

  • 첫 줄에는 테스트 케이스의 개수 T
  • 문자열의 길이는 30, 마디의 최대 길이는 10

출력

  • 마디의 길이를 출력

코드 구현

import java.io.*;

public class No_2007 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(br.readLine());
		
		for(int i = 0; i < T; i++) {
			String str = br.readLine();
			int answer = 0;
			
			for(int j = 1; j <= 10; j++) {
				String pattern1 = str.substring(0, j);
				String pattern2 = str.substring(j, j + j);
				
				if(pattern1.equals(pattern2)) {
					answer = j;
					break;
				}
			}
			System.out.println("#" + (i+1) + " " + answer);
		}
	}
}

💡문제 풀이

  • 브루트 포스(완전 탐색) 방식으로 모든 경우를 다 확인하는 방식으로 풀었다
  1. 마디의 최대 길이는 10이므로 1부터 10까지 차례대로 가정
  2. 가정한 길이 j만큼 문자열 자르기
    • 첫 번째 마디 : str.substring(0, j)
    • 두 번째 마디 : str.substring(j, j + j)
  3. 첫 번째 마디와 두 번째 마디가 같은지 equals를 사용하여 확인
  4. 만약 같고 제일 먼저 발견된 길이가 최소 길이니까 반복문 종료후 빠져나오기

0개의 댓글