https://www.acmicpc.net/problem/17609
이번 문제는 유연한 사고가 필요한 문제였다.
건너뜀을 재귀로 처리하면 아주 쉽게 풀리는 문제였다.
문제 분류를 보고 투포인터로만 풀어보려고 하는 오류를 범하고 말아따~
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static int T;
static String[] str;
static BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
initialize();
solve();
}
private static void solve() {
for(int i = 0; i < T; i++){
System.out.println(check(0, str[i].length()-1, str[i], 0));
}
}
private static int check(int start, int end, String s, int flag) {
if (flag == 2) {
return 2;
}
while (start < end) {
if (s.charAt(start) == s.charAt(end)) {
start++;
end--;
} else {
return Math.min(check(start + 1, end, s, flag + 1), check(start, end - 1, s, flag + 1));
}
}
return flag;
}
private static void initialize() throws IOException {
T = Integer.parseInt(bufferedReader.readLine());
str = new String[T];
for(int i = 0; i < T; i++){
str[i] = bufferedReader.readLine();
}
}
}
'알고리즘' 카테고리의 다른 글
bj1082(방 번호)-그리디 (0) | 2025.04.23 |
---|---|
bj16235(나무 제테크)-구현 (0) | 2025.04.22 |
bj17298(오큰수)-스택 (0) | 2025.04.17 |
bj2461(대표 선수)-N 포인터, 우선순위 큐 (0) | 2025.04.16 |
bj20366(같이 눈사람 만들래?)-투 포인터 (0) | 2025.04.16 |