문제

패턴에서 반복되는 부분을 마디라고 부른다. 문자열을 입력받아 마디의 길이를 출력하는 프로그램을 작성하라.

 

풀이

  1. 반복되는 패턴을 저장할 String 변수 pattern의 길이를 하나씩 늘려주며 비교한다.
  2. i-1번째까지를 pattern 변수에 넣었을때 기존에 입력받은 문자열의 i번째부터 길이 i만큼을 잘라서 새로 tmp 만큼에 넣는다.
  3. pattern과 tmp 가 같으면 pattern변수의 길이를 출력하고 종료.
import java.io.*;
public class Solution {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int T = Integer.parseInt(br.readLine());
		for(int tc=1; tc<=T; tc++) {
			String s = br.readLine();
			for(int i=1; i<=s.length(); i++) {
				String pattern = s.substring(0, i);
				String tmp = s.substring(i,i+i);
				if(pattern.equals(tmp)) {
					System.out.println("#"+tc+" "+pattern.length());
					break;
				}
			}			
		}	
	}
}

'SWEA > D2' 카테고리의 다른 글

[SWEA] 1986. 지그재그 숫자  (0) 2019.04.30
[SWEA] 1989. 초심자의 회문 검사  (0) 2019.04.30
[SWEA] 2001. 파리 퇴치  (0) 2019.04.29
[SWEA] 2005. 파스칼의 삼각형  (0) 2019.04.29
[SWEA] 1926. 간단한 369게임  (0) 2019.04.28

+ Recent posts