문제 풀이 날짜: 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 링크 첨부)
'Study > Problem Solving' 카테고리의 다른 글
[SWEA / Java] 4047번: 영준이의 카드 카운팅 (D3) (0) | 2023.07.27 |
---|---|
[SWEA / Java] 1220번: Magnetic (D3) (0) | 2023.07.26 |
[백준 / Java] 2941번: 크로아티아 알파벳 (실버5) (0) | 2023.07.25 |
[SWEA / Java] 1493번: 수의 새로운 연산 (D3) (0) | 2023.07.25 |
[SWEA / Java] 1954번: 달팽이 숫자 (D2) (0) | 2023.07.25 |