jyamethyst21 님의 블로그

프로그래머스 - '문자열 내 p와 y의 개수' (PYTHON 풀이) 본문

CODING 💻

프로그래머스 - '문자열 내 p와 y의 개수' (PYTHON 풀이)

jyamethyst21 2026. 5. 6. 00:52

문제:

 

문자열을 입력받고 해당 문자열에 p, y의 개수가 동일하면(대소문자 구분 없음) true를, 그렇지 않다면 false를 리턴하면 되는 문제이다. 단, p, y 모두 하나도 없는 경우는 항상 true를 리턴해야 한다.

 

풀이:

def solution(s):
    p_count = 0
    y_count = 0
    for i in s:
        if i=='p' or i=='P':
            p_count += 1
        elif i=='y' or i=='Y':
            y_count += 1
    if p_count == y_count:
        return True
    elif p_count != y_count:
        return False
    elif p_count == 0 and y_count == 0:
        return True

p, y의 개수를 저장할 변수를 각각 선언하고 반복문을 돈다. 입력받은 문자열 s를 하나씩 돌면서 p인 경우(대소문자 구분 X), p 개수 변수에 1을 더하고, y인 경우(대소문자 구분 X) y 개수 변수에 1을 더한다.

이후 두 개의 변수의 값이 같으면 True를, 다르면 False를 두 개의 변수 모두 0인 경우 True를 리턴하도록 한다.

def numPY(s):
    return s.lower().count('p') == s.lower().count('y')

다른 사람의 풀이도 들고왔다. 정말 간단하다. ㅎ

파이썬은 이렇게 간결하게 쓰는 게 매력인데 아직 나는 멀었다 싶었다.

count 함수를 이렇게도 쓸 수 있구나를 알았고, lower로 대소문자 구분을 하지 않도록 처리하는 것도 다음에 활용해야겠다.