[백준] 1259 : 팰린드롬수 (파이썬)

2022. 10. 24. 23:27· Python/알고리즘 - 백준
목차
  1. 문제  요약
  2. 입력
  3. 💡 접근법
  4. CODE
  5.  
  6. 풀이 [리스트의 슬라이싱]
반응형

문제 링크 : https://www.acmicpc.net/problem/1259

 

1259번: 팰린드롬수

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

www.acmicpc.net


 


문제  요약

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

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

입력

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

 

💡 접근법

1. 입력 받은 값을 for문을 써서 비어있는 문자열에 뒤에서부터 append 한 다음에 원래의 값이랑 비교해보려 하였다.

2. 반을 나눠서 앞의 값과 뒤의 값이 같은지 비교해보려 하였다.

 

문제점

  1.  1번의 경우는 코드가 너무 더러워졌고 2번의 경우는 문자열이 홀수인 경우 처리하는 코드를 짜니 너무 길어졌다.

해결법

  • 생각보다 쉬운 해결 방법이 있었다. 파이썬에는 a [::-1]를 이용해서 쉽게 풀 수 있었다.

CODE

while(1):
    a = input()
    if a == "0":
        break
    if a==a[::-1]:
        print("yes")
    else:
        print("no")

 

 

풀이 [리스트의 슬라이싱]

문자열과 마찬가지로 리스트에서도 슬라이싱 기법을 적용할 수 있다. 슬라이싱은 "나눈다"라는 뜻이다.

1. 리스트 슬라이싱
>>> a = [1, 2, 3, 4, 5]
>>> a[0:2]
[1, 2]

2. 문자열 슬라이싱
>>> a = "12345"
>>> a[0:2]
'12'

3. 기본이 되는 리스트 a
a = [1, 2, 3, 4, 5]

4. b = a의 처음부터 1번 인덱스까지의 값
b = a[:2]

5. c = a의 2번부터 마지막 인덱스 까지의 값
c = a[2:]

6. d = a를 뒤에서부터 읽어 오기
d = a[::-1]

7. 출력값
b = [1, 2]
c = [3, 4, 5]
d = [5, 4, 3, 2, 1]

 

반응형

'Python > 알고리즘 - 백준' 카테고리의 다른 글

[백준] 9012 : 괄호 (파이썬)  (0) 2022.11.02
[백준] 10773 : 제로 (파이썬)  (0) 2022.11.02
[백준] 1181 : 단어 정렬 (파이썬)  (0) 2022.10.24
[백준] 1085 : 직사각형에서 탈출 (파이썬)  (0) 2022.10.21
[백준] 11720 : 숫자의 합 (파이썬)  (0) 2022.10.20
  1. 문제  요약
  2. 입력
  3. 💡 접근법
  4. CODE
  5.  
  6. 풀이 [리스트의 슬라이싱]
'Python/알고리즘 - 백준' 카테고리의 다른 글
  • [백준] 9012 : 괄호 (파이썬)
  • [백준] 10773 : 제로 (파이썬)
  • [백준] 1181 : 단어 정렬 (파이썬)
  • [백준] 1085 : 직사각형에서 탈출 (파이썬)
Jong_seoung
Jong_seoung
기록하자, 머리는 생각하는 곳이지 저장장치가 아니다.
반응형
Jong_seoung
Today_developStory
Jong_seoung
전체
오늘
어제

블로그 메뉴

  • Home
  • Git Hub
  • 분류 전체보기 (351)
    • Theory (16)
    • Java (3)
      • 알고리즘 (2)
      • 문법 (0)
    • Spring (7)
      • 스프링 입문 (6)
      • PickTalk (0)
      • 에러처리 (1)
    • Python (80)
      • 알고리즘 - 이론 (17)
      • 알고리즘 - 내장함수, 라이브러리 등등 (3)
      • 알고리즘 - 백준 (53)
      • 나도코딩 정리 (2)
      • 기타 (5)
    • Django (159)
      • DRF (105)
      • 인프라 (46)
      • DataBases (2)
      • API Docs (6)
    • FrontEnd (22)
      • htmx (2)
      • React (8)
      • 자바스크립트 (12)
    • GIT (16)
    • 기타 (8)
      • 정리 (2)
      • Flutter (1)
      • 마이크로프로세서 - ATmega128 (2)
      • 개발환경 세팅 (3)
    • 자격증 (37)
      • 정보처리기사 (19)
      • SQLD자격증 (18)

인기 글

최근 글

태그

  • alarm
  • BFS
  • CSRF
  • Django
  • django channels
  • django sse
  • django tutorial
  • django 배포
  • django 스웨거 적용
  • Django 이미지 저장

최근 댓글

hELLO · Designed By 정상우.v4.3.0
Jong_seoung
[백준] 1259 : 팰린드롬수 (파이썬)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.