[Coding Test] 백준 JAVA 1254 팰린드롬 만들기 - 브루트포스

LeeSeungEun·2023년 5월 29일
0

Coding Test

목록 보기
34/38

1. 문제

2. 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String s = in.readLine();
		int ans = s.length();
		for(int i = 0; i < s.length(); i++) {
			if(isPalind(s.substring(i))) {
				break;
			}
			ans++;
		}
		System.out.println(ans);
	}

	public static boolean isPalind(String s) {
		int start = 0;
		int last = s.length()-1;
		while(start <= last) {
			if(s.charAt(start) != s.charAt(last))
				return false;
			start++;
			last--;
		}
		return true;
	}
}

3. 풀이

  • abab를 예시로 들어 설명하면, 우선 substring으로 앞에서부터 문자열을 잘라 팰린드롬인지 확인한다.
  • abab는 팰린드롬이 아니므로 문자열의 길이인 cnt를 증가시키고, 앞에서부터 문자열을 잘라 재 확인한다.
  • bab는 팰린드롬이므로 멈춘다.
  • 이런식으로 문자열에서 팰린드롬을 발견한 순간 그 뒤 문자열을 팰린드롬 문자열 앞 문자열의 개수만큼 붙여주면 된다.

4. 링크

https://www.acmicpc.net/problem/1254

0개의 댓글