문제
패턴에서 반복되는 부분을 마디라고 부른다. 문자열을 입력받아 마디의 길이를 출력하는 프로그램을 작성하라.
풀이
- 반복되는 패턴을 저장할 String 변수 pattern의 길이를 하나씩 늘려주며 비교한다.
- i-1번째까지를 pattern 변수에 넣었을때 기존에 입력받은 문자열의 i번째부터 길이 i만큼을 잘라서 새로 tmp 만큼에 넣는다.
- 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 |