문제 자체는 간단해 보였다:
def solution(s):
num_p = 0
num_y = 0
answer = True
for i in s:
if i == 'p' or i == 'P':
num_p += 1
elif i == 'y' or i == 'Y':
num_y += 1
if num_p != num_y:
answer = False
return answer
단순히 s 안에 p(P) 와 y(Y)의 개수를 세어주고 만약 같을 경우 True, 다를 경우 False로 출력하면 된다.
※ 다른 사람의 풀이
프로그래머스에서 가장 많은 좋아요를 받은 문제 풀이이다:
def solution(s):
return s.lower().count('p') == s.lower().count('y')
조금 충격적인 숏코딩이다. 생각해보니 모두 그냥 lower()이라는 함수를 통해 소문자로 변환 후, p 와 y의 개수를 세어주고, 굳이 answer = True 같이 저장을 시키지 않고 같은지 아닌지를 그냥 return 해주면 알아서 True인지 False인지를 알려줄 것이기 때문에 나의 풀이처럼 할 필요가 없었다.
'알고리즘 테스트 > 프로그래머스 문제풀이 및 해설' 카테고리의 다른 글
<프로그래머스 문제풀이: 3진법 뒤집기> Level 1 - 파이썬 (0) | 2020.11.09 |
---|---|
<프로그래머스 문제풀이: 문자열 내림차순으로 배치하기> Level 1 - 파이썬 (0) | 2020.11.08 |
<프로그래머스 문제풀이: 문자열 내 마음대로 정렬하기> Level 1 - 파이썬 (0) | 2020.11.06 |
<프로그래머스 문제풀이: 두 정수 사이의 합> Level 1 - 파이썬 (0) | 2020.11.05 |
<프로그래머스 문제풀이: 나누어 떨어지는 숫자 배열> (0) | 2020.11.01 |