지구정복

[문자열] 백준 - 팰린드롬수 본문

데이터 엔지니어링 정복/Algorithm

[문자열] 백준 - 팰린드롬수

nooh._.jl 2021. 7. 24. 16:52
728x90
반응형

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

 

1259번: 팰린드롬수

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

www.acmicpc.net

 

-문제해설

숫자로 입력받지 않고 문자열n으로 입력받은 다음에 반복문을 0부터 n/2까지 순회하면서

양 끝값을 비교한다. n.charAt( i )와 n.charAt( n.length()-i-1 ) 다르면 ans라는 변수를 "no"로 초기화시키고

반복문을 빠져나온다.

 

같은 경우 ans 값을 그대로 출력한다. ans의 맨 처음 초기값은 "yes"이다.

 

 

 

 

-자바

package string;

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

public class BJ1259 {
	private static BufferedWriter bw = 
			new BufferedWriter( new OutputStreamWriter(System.out));
	private static String n, ans;
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		while( true ) {
			n = br.readLine();
			if( n.equals("0") ) break;
			
			ans = "yes";
			for( int i=0; i< n.length()/2; i++ ) {
				if( n.charAt(i) != n.charAt(n.length()-i-1) ) {
					ans = "no";
					break;
				}
			}
			bw.write( ans + "\n" );
			bw.flush();
		}
		bw.close();
		br.close();
	}
}

 

-파이썬

while True:
    n = input()
    if n=="0": break
    ans = "yes"
    for i in range( len(n)//2 ):
        if n[i] != n[len(n)-i-1]: 
            ans="no"
            break
    print( ans )
728x90
반응형
Comments