[ Baekjoon ] 1259번 ( Bronze I ) : 팰린드롬수 (Java)

ma.caron_g·2021년 12월 26일
0
post-thumbnail

1. Problem 📃

[ 팰린드롬수 ]

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


[ 문제 ]

어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.

수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다.
123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다.
또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.


2. Input 📇

[ 입력 ]

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


3. Output 📠

[ 출력 ]

각 줄마다 주어진 수가 팰린드롬수면 'yes', 아니면 'no'를 출력한다.


4. Example 📚

[ 입출력 예시 ]

예제 입력예제 출력
121
1231
12421
0
yes
no
yes

5. Solution 🔑

  1. 단어들을 받아 하나씩 확인해줄 것이므로, 받은 단어를 문자 하나씩 저장해줄 char 배열 변수(str)를 선언한다.

  2. "0"이 입력 될 때까지 무한반복 할 것이므로, while로 무한 루프를 돌려줄 것이다.
    받은 문자에 대해서는 우선적으로 yes라는 것으로 판독하여 시작할 것이므로 yes를 문자열 변수(judge)에 담아 시작한다.

  3. 입력 된 문자를 toCharArray();로 한 문자씩 담아준다.
    문제에서 맨 앞에 무의미한 0은 올 수 없다고 나와있으므로, str[0] != '0'이 아니면 아래 코드를 실행시킨다. (0이 올 수 없는데 0이 입력되면 자동으로 종료하라는 뜻이기도 하므로)

  4. for문으로 받은 문자들을 확인하는데, str[i]와 != str[str.length-i-1]이 같지 않으면 펠린드롬수 판단 문자열 변수(judge)를 "no"값으로 변경 후 break;하여 "no"를 출력하고 다음 문자를 받을 준비를 하면서, 판단 문자열 변수(judge)를 다시 "yes"로 변경 후 0이 입력 될 때까지 무한 반복한다.

6. Code 💻

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

public class Main {

	public static void main(String[] args) throws IOException {
        	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        	StringTokenizer st = new StringTokenizer(br.readLine());
        	char[] str;
        
        	while(true) {
        		String judge = "yes";
	        	str = st.nextToken().toCharArray();
 	       		if(str[0] != '0') {
    	    			for(int i=0; i<str.length; i++) {
        				if(str[i] != str[str.length-i-1]) {
        					judge = "no";
	        				break;
    		    			}
        			}
	        	}
        		else {
        			break;
        		}
        		System.out.println(judge);
	        	st = new StringTokenizer(br.readLine());
        	        	
		}
	}

}
profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글