[백준] 10988번 - 팰린드롬인지 확인하기 (파이썬)

2022. 8. 23. 23:34·🎲 알고리즘 공부/백준
목차
  1. 🍦 코드 설명 (실행 순서대로 나열)

[문제] 
알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.

팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. 

level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.

 

입출력 예시


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

 

10988번: 팰린드롬인지 확인하기

첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.

www.acmicpc.net

 


🎨 풀이

💡 전체 코드

word = str(input())
result = 1
if len(word) % 2 != 0: # 단어가 홀수인 경우
    tmp = len(word) // 2
    word_1 = word[0:tmp]
    word_2 = word[tmp+1:len(word)]
else :                 # 단어가 짝수인 경우
    tmp = len(word) // 2 - 1
    word_1 = word[0:tmp+1]
    word_2 = word[tmp+1:len(word)]

word_2 = word_2[::-1]

for i in range(len(word_1)):
    if word_1[i] != word_2[i]:
        result = 0
        break

print(result)

> 핵심 : 문자를 반으로 자른 후 같은 지 비교하기

 

🍦 코드 설명 (실행 순서대로 나열)

# main

word = str(input())
result = 1

1. word를 입력받는다.
2. result를 1로 초기화한다.
- 일단 팰린드롬이 맞다고 가정하고, 이후 과정에서 아닌 게 밝혀지면 0으로 바꿀 예정


if len(word) % 2 != 0: # 단어가 홀수인 경우
    tmp = len(word) // 2
    word_1 = word[0:tmp]
    word_2 = word[tmp+1:len(word)]
else :                 # 단어가 짝수인 경우
    tmp = len(word) // 2 - 1
    word_1 = word[0:tmp+1]
    word_2 = word[tmp+1:len(word)]

3. 단어가 홀수인지 짝수인지에 따라 tmp에 넣은 후, tmp를 이용해서 단어를 자른다.
- word_1 : 단어의 앞부분
- word_2 : 단어의 뒷부분

word_2 = word_2[::-1]

for i in range(len(word_1)):
    if word_1[i] != word_2[i]:
        result = 0
        break

4. word_2 를 뒤집는다.
- (ex) word_2 = "abcd" => "dcba"
5. word_1과 word_2를 한글자씩 비교한다.
- 만약, 같지 않은게 있다면 result를 0으로 바꾼 후 break 한다.



print(result)

6. result를 출력한다.


끝~

⭐ 느낀점

> for문을 좀 많이 쓴 느낌이 나긴 하는데. 그래도 뭐 잘했다고 생각한다. 고생했다!

'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글

[백준] 1924번 - 2007년 (파이썬)  (0) 2022.08.26
[백준] 2920번 - 음계 (파이썬)  (0) 2022.08.25
[백준] 2441번 - 별 찍기 4 (파이썬)  (0) 2022.08.22
[백준] 10817번 - 세 수 (파이썬)  (0) 2022.08.21
[백준] 10886번 - 0 = not cute / 1 = cute (파이썬)  (0) 2022.08.20
  1. 🍦 코드 설명 (실행 순서대로 나열)
'🎲 알고리즘 공부/백준' 카테고리의 다른 글
  • [백준] 1924번 - 2007년 (파이썬)
  • [백준] 2920번 - 음계 (파이썬)
  • [백준] 2441번 - 별 찍기 4 (파이썬)
  • [백준] 10817번 - 세 수 (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (280)
      • 📑 신입일기 (35)
      • 🍪 Web (1)
        • angular (1)
        • JavaScript (0)
      • 🧩 Node.js 공부 (2)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 🎨 Tistory Customizing (1)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 📗 spring boot 공부 (9)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    코테
    nodejs
    연습문제
    코드업
    컨텐더스
    정처기
    행렬덧셈
    피보나치수
    BOJ
    충무로
    codeup
    50문답
    프로그래머스
    신입일기
    스프링부트
    폰켓몬
    찬양추천
    오블완
    백준
    파이썬
    til
    6월 목표
    코민이
    오버워치
    코린이
    티스토리챌린지
    정보처리기사
    일기
    스프링 부트
    카카오
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[백준] 10988번 - 팰린드롬인지 확인하기 (파이썬)
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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