📌 문제
https://www.acmicpc.net/problem/1254
💻 소스코드
package baekjoon;
import java.util.Scanner;
// S.2, 팰린드롬 만들기
public class B1254 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
int answer = str.length();
// 주어진 문자열을 순회하며 팰린드롬인지 확인
for (int i = 0; i < str.length(); i++) {
if (isPalindrome(str.substring(i))) { // 팰린드롬이면 더 이상 탐색하지 않고 종료
break;
}
answer++; // 팰린드롬이 아니면 문자열 길이를 증가시킴
}
System.out.println(answer);
}
// 주어진 문자열이 팰린드롬인지 확인하는 메서드
private static boolean isPalindrome(String str) {
int left = 0;
int right = str.length() - 1;
// 양쪽에서부터 문자를 비교하여 팰린드롬인지 확인
while (left < right) {
if (str.charAt(left) != str.charAt(right)) { // 문자가 다르면 팰린드롬이 아님
return false;
}
left++;
right--;
}
// 모든 문자가 같다면 팰린드롬
return true;
}
}
'Algorithm' 카테고리의 다른 글
[Java] 백준 2003 : 수들의 합2 (0) | 2023.05.29 |
---|---|
[Java] 백준 2167 : 2차원 배열의 합 (0) | 2023.05.29 |
[Java] 백준 25556 : 포스택 (0) | 2023.05.08 |
[Java] 유클리드 호제법 (Euclidean Algorithm) (0) | 2023.04.29 |
[Java] 백준 2161 : 카드 1 (0) | 2022.06.28 |