본문 바로가기
🧑‍💻코딩 테스트/백준 (BOJ)

[코딩 테스트/백준 알고리즘] 1295번 : 팰린드롬수(Java 풀이)

by 코코의 주인 2022. 8. 1.

문제

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

 

1259번: 팰린드롬수

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.

www.acmicpc.net


문제 설명


문제 풀이

	while(!str.equals("0")) {
            int i = 0;	//첫번째 인덱스
            int j = str.length() - 1;	//단어 마지막 인덱스

            while(i <= j / 2) {
                if(str.charAt(i) == str.charAt(j - i)) {
                    i++;
                }
                else {
                    System.out.println("no");
                    break;
                }
            }

입력을 String으로 받아서 단어의 맨 처음과 맨 끝을 비교한다. 이후 점점 안쪽으로 들어오면서 입력받은 단어가 팰린드롬인지 알아본다.

 

 StringBuilder.reverse()를 사용해서 입력을 뒤집은 뒤, 입력 받은 단어와 비교하는 풀이가 있었는데 편해보였다.


코드

import java.util.*;

class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        while(!str.equals("0")) {
            int i = 0;
            int j = str.length() - 1;

            while(i <= j / 2) {
                if(str.charAt(i) == str.charAt(j - i)) {
                    i++;
                }
                else {
                    System.out.println("no");
                    break;
                }
            }
            
            if(i == j / 2 + 1) {
                System.out.println("yes");
            }
            str = sc.next();
        }
    }
}

총평

 뭔가 풀어놓고도 이 풀이가 최선이라는 생각이 유독 들지 않았던 문제다.

 다른 사람들의 코드를 보니 대부분 나랑 비슷한 방식으로 푼 거 같다.

 수식을 이용해서 해결한 풀이가 있었는데 그거 하나는 정말 독특한 풀이였다.

댓글