출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

문제 자체는 간단해 보였다:

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()이라는 함수를 통해 소문자로 변환 후, py의 개수를 세어주고, 굳이 answer = True 같이 저장을 시키지 않고 같은지 아닌지를 그냥 return 해주면 알아서 True인지 False인지를 알려줄 것이기 때문에 나의 풀이처럼 할 필요가 없었다.