[BOJ/백준] 10988번 팰린드롬 (python)

ubin·2023년 7월 21일

백준 문제 풀이

목록 보기
2/9
post-thumbnail

🖇️ 문제

📝 코드 계획

1. 알파벳 소문자로 이루어진 단어 
2. 팰린드롬을 구분하는 조건문 

🔍 전체 코드

n = input()  #코드 계획 -1 ☑️
m = list(n)
if len(m)>1:
    for i in range(len(m)//2): #코드 계획 -2 ☑️
        if m[i] != m[len(m)-(i+1)]:
            a = 0
            break
        else:
            a = 1
    if a == 0:
        print(0)
    else:
        print(1)        
else:
    print(1)

🖍️ 코드 해설

알파벳 소문자로 이뤄진 단어를 n으로 받아온다. 
그와 동시에 문자열을 list로 변환하여 m에 저장한다.

만약 리스트 m의 길이가 2 이상이라면, 리스트 길이를 2로 나눈 몫만큼 for문을 돌린다.
이는 문자의 길이가 홀수이던 짝수이던, 중간을 기준으로 양 쪽의 문자가 같은지 확인하기 위해서이다. 
m의 앞의 절반의 문자가 뒤의 절반의 문자와 다르다면 a라는 변수에 0을 넣고 반복문을 나온다. 
양 쪽의 문자들이 서로 같다면, a에 1이 들어가고 반복문이 끝난다. 

a가 0이면, 맢 뒤 문자가 서로 다른 단어로 팰린드롬이 아니므로 0을 출력하고, 1이면 팰린드롬으로 1을 출력한다. 
또한 길이가 1이면, 팰린드롬이므로 for문을 거치지 않고 바로 1을 출력한다. 
profile
프론트엔드 개발자가 되고싶은 코린이⌨️

1개의 댓글

comment-user-thumbnail
2023년 7월 21일

팰린드롬에 대한 코드 설명이 훌륭하네요. 직관적으로 이해하기 쉽게 글을 써주셔서 감사합니다. 앞으로도 유익한 글 기대할게요!

답글 달기