문제 풀이 날짜: 2023.07.26
포스트 작성일: 2023.07.26

 

* 학습 목적으로 작성하는 글입니다. 풀이가 정석적이지 못할 수도 있습니다.

 

문제 출처

Software Expert Academy 2007번: 패턴 마디의 길이 (D2)

 

키워드

문자열

 

풀이 접근법

  • 두 구간의 substring을 떠서 내용을 비교한다. 각각 [0 ~ i) 와 [i ~ 2i)까지 따오면 된다.
    • 마디의 길이가 최대 10밖에 되지 않으므로 이러한 메소드를 사용해도 시간초과가 나지 않는다.
    • input의 길이를 잘 점검해서 가능한 간단한 풀이를 선택하자. 만약 input의 크기가 크다면 다른 풀이를 구상해야 하지만, 작다면 가능한 API들을 활용하자.

 

코드

import java.util.*;
import java.io.*;

class Solution {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int T = Integer.parseInt(br.readLine());
		
		StringBuilder sb = new StringBuilder();
		for(int test_case = 1; test_case <= T; test_case++) {
			String str = br.readLine();
			
			for(int i = 1; i < str.length() / 2; i++) {
				String s1 = str.substring(0, i);
				String s2 = str.substring(i, 2 * i);
				
				if(s1.equals(s2)) {
					sb.append("#").append(test_case).append(" ")
						.append(s1.length()).append("\n");
					break;
				}
			}
		}

		System.out.println(sb);
	}
}

 

input의 크기를 고려하지 않고 접근해서 어려운 방식으로 풀었던 문제이다. 답이 나오지 않아 다른 블로그 글을 참고하여 풀이했다.

 

참고한 블로그

https://haerang94.tistory.com/194

 

git 링크

(git 링크 첨부)

+ Recent posts