백준 1254 팰린드롬 만들기 문제풀이

김하영·2023년 4월 3일
0

prePreCodingTest

목록 보기
11/15

문제링크

접근

팰린드롬은 앞으로 읽어도 뒤로 읽어도 똑같은 문자열이다.
따라서 팰린드롬의 앞뒤로 똑같은 문자열을 붙이면 팰린드롬이 된다.

문자열을 왼쪽에서부터 잘라가면서 팰린드롬인 부분을 찾는다.
앞에서 잘린 문자열 만큼 찾은 팰린드롬 뒤에 붙여주면 팰린드롬을 만들 수 있다.

코드 및 코드 설명


import java.util.Scanner;

public class Palindrome {
    public static void main(String[] args) {
        int answer = 0; // 가장 짧은 팰린드롬을 만들기 위해 뒤에다가 붙일 문자의 개수
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        for(int i = 0; i<s.length(); i++){
            if(isPalin(s.substring(i))){ // 앞에서부터 문자열을 잘라가면서 팰린드롬을 찾으면
                break; // 빠져나온다.
            }
            answer++; // 팰린드롬이 아니면 뒤에 붙일 문자 개수를 늘린다.
        }
        System.out.println(answer+s.length()); // 가장 짧은 팰린드롬의 길이
    }
    
    public static boolean isPalin(String s){ // 문자열을 받아 팰린드롬인지 확인하는 함수
        StringBuffer sb = new StringBuffer(s);
        return (s.equals(sb.reverse().toString())); // 뒤집한 문자열과 기존 문자열이 같으면 true, 아니면 false
    }
}

참고 자료

https://ilmiodiario.tistory.com/145

profile
백엔드 개발자로 일하고 싶어요 제발

0개의 댓글