본문 바로가기
Algorithm Problem Solving/BaekJoon

[BaekJoon] 백준 1259 팰린드롬 수 (Python / 파이썬)

by ʚ⇜❅🎕̈❄⇝ɞ 2021. 8. 17.
728x90
반응형

BaekJoon 백준 1259 팰린드롬수 문제는 어떤 단어를 뒤에서부터 읽어도 똑같다면 팰린드롬이라고 한다. 수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 팰린드롬 수다. 주어진 수가 팰린드롬수인지 아닌지 판별하는 문제이다. 난이도는 Bronze 1이다.

 

BaekJoon 1259 팰린드롬수 문제 정보

출처

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

난이도

- 브론즈 1 / Bronze 1

 

팰린드롬수 문제 요약

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

 

문제 풀이 과정

  1. 주어진 정수를 문자열로 입력받는다.
  2. 값이 1인 팰린드롬 판별 변수(isPalindrome)를 선언한다.
  3. 주어진 정수의 수의 개수 // 2번 반복문을 돌려서 맨 앞-맨뒤, 1 번째-뒤에서 1번째,... 수를 비교한다.
  4. 수가 같으면 다음 수를, 다르면 팰린드롬이 아니므로 isPalindrome를 0으로 바꾸고 반복문을 빠져나온다.
  5. isPalindrome이 1이면 yes, 0이면 no를 출력한다.
  6. 다음 수를 입력받고 수가 0일 때까지 위 과정을 반복한다.

 

코드 및 설명
  • isPalindrome - 팰린드롬 수인지 아닌지를 판별해주는 변수 (0=아님, 1=맞음)
num = input()
while num != '0':
    isPalindrome = 1
    for i in range(len(num) // 2):
        if num[i] == num[len(num) - (i+1)]:
            continue
        else:
            isPalindrome = 0
            break
            
    if isPalindrome:
        print('yes')
    else:
        print('no')
    num = input()

BaekJoon 백준 1259 팰린드롬수 문제를 파이썬 python으로 풀어보았다. 난이도는 Bronze 브론즈 1이다. 

728x90
반응형

댓글