본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Silver 5][Python] 14405번 : 피카츄

by 빛밤하늘 2021. 5. 26.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

14405번: 피카츄

피카츄는 "pi", "ka", "chu"를 발음할 수 있다. 따라서, 피카츄는 이 세 음절을 합친 단어만 발음할 수 있다. 예를 들면, "pikapi"와 "pikachu"가 있다. 문자열 S가 주어졌을 때, 피카츄가 발음할 수 있는 문

www.acmicpc.net

 

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# readline을 사용하기 위해 import합니다.
from sys import stdin

# 첫째 줄에 문자열 S를 입력합니다.
# 알파벳 소문자로만 이루어진 문자열이며, 길이는 5000을 넘지 않습니다.
S = stdin.readline().rstrip()
# 피카츄의 pi, ka, chu 음절들을 저장하는 리스트 변수를 선언합니다. 
pikachu = ['pi', 'ka', 'chu']

# pi, ka, chu 음절 하나씩 반복해봅니다.
for syllable in pikachu:
    # 문자열 S에서 pi, ka, chu 음절들을 공백 하나로 변경합니다.
    S = S.replace(syllable, ' ')

# 변경된 문자열 S에서 한 글자씩 반복합니다.
for character in S:
    # 현재 글자가 알파벳 a부터 z에 속한다면
    if ord('a') <= ord(character) <= ord('z'):
        # NO를 출력합니다.
        print('NO')
        # 반복문을 탈출합니다.
        break
# 반복문을 중간에 탈출하지 않고 끝까지 끝낸다면
else:
    # YES를 출력합니다.
    print('YES')

결과

 

첫 번째 제출했을 때는 S = S.replace(syllable, ' ') 대신 S = S.replace(syllable, '')를 넣어 

kpiakachu와 같은 경우에도 YES를 출력하는 잘못된 코드였습니다. 그리고 틀렸습니다 결과를 보게 되었습니다.

 

그리고 제가 제출한 코드보다 뭔가 더 간단한 코드로 풀 수 있는 방법이 있는 것 같은데,

아무리 생각해도 도저히 떠오르지 않아 일단 생각나는대로 푼 코드로 풀었습니다.

다른 사람들의 코드를 보고 공부해야겠습니다.

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글