문제 풀이
문제에서 주어진 예제 입력 3번을 예시로 들어보자
해당 예시를 토대로 문자를 붙여보면 다음과 같다.
qwertytrewq
해당 예시를 토대로 팰린드롬을 만들기 위해서는
qwert를 그대로 뒤집어서 trewq를 붙이면 된다.
그래서 나는 0~i 번째 행까지의 문자열을 붙여보았다. 이때, 문자열을 뒤집어서 붙여야 해서 reverse() 함수를 사용했다.
for문을 돌면 다음과 같이 출력된다.
qwerty
qwertyq
qwertywq
qwertyewq
qwertyrewq
qwertytrewq ( 팰린드롬 완성)
문제를 풀며 어려웠던 점
문제 쉽다고 생각했는데,
문자열을 그대로 뒤집어서 붙여보면 됐는데, 그 부분을 생각못한 문제
문자열을 뒤집어서 안붙이고 그대로 붙여서 테케를 전부 맞지 못했던 문제였다.
구현
public class Main_1254 {
static int result;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
result = 0;
solve(str);
System.out.println(result);
}
static void solve(String input){
StringBuilder tmp = new StringBuilder().append(input);
if(input.equals(tmp.reverse().toString())){//이미 팰린드롬인 경우를 확인
result = input.length();
return;
}
for (int i = 0; i < input.length(); i++) {
StringBuilder sb = new StringBuilder(input);
String subStr = input.substring(0, i);
sb.append(new StringBuilder().append(subStr).reverse());//문자열을 뒤집어서 붙이기
String check = sb.toString();
if(check.equals(sb.reverse().toString())){//팰린드롬인 경우
result = sb.length();
return;
}
}
}
}
'Algorithm > 백준' 카테고리의 다른 글
[백준] BOJ 15686 치킨 배달(JAVA/시간초과 해결) (0) | 2023.06.12 |
---|---|
[백준] BOJ 1759 암호 만들기(자바/메모리 초과 해결) (0) | 2023.06.07 |
[백준] BOJ 2531 회전 초밥(자바) (0) | 2023.05.23 |
[백준] BOJ 11501 주식(자바/시간 초과) (0) | 2023.05.02 |
[백준] BOJ 7569 토마토 (자바/3차원/BFS) (0) | 2023.04.29 |