Lv1. 문자열 내 p와 y의 개수 ( Python )


Lv1. 문자열 내 p와 y의 개수

# 문제 설명

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 ‘p’의 개수와 ‘y’의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. ‘p’, ‘y’ 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

예를 들어 s가 pPoooyY면 true를 return하고 Pyy라면 false를 return합니다.

# 제한 사항

  • 문자열 s의 길이 : 50 이하의 자연수
  • 문자열 s는 알파벳으로만 이루어져 있습니다.

# 입출력 예

s answer
pPoooyY true
Pyy false
입출력 예 설명

입출력 예 #1 ‘p’의 개수 2개, ‘y’의 개수 2개로 같으므로 true를 return 합니다.

입출력 예 #2 ‘p’의 개수 1개, ‘y’의 개수 2개로 다르므로 false를 return 합니다.


문제 해결 시 고려사항

  • lower와 count의 활용

본 문제는 주어지는 문자열 s에 포함된 문자 ‘p’와 ‘y’의 개수가 같으면 True, 다르면 False를 반환하는 문제이다. 문제 조건에서 대소문자를 구분하지 않는다고 했으므로 s를 모두 소문자로 바꾼 후, p와 y의 개수를 세어 조건에 따라 반환하면 된다.

 # 대소문자 구별하지 않기 위해 s를 소문자 변환 ==> p와 y의 수가 같으면 True 아니면 False
     return True if s.lower().count('p') == s.lower().count('y') else False

필자는 위에서 설명한 것처럼 위의 코드와 같이 구현하였다.



전체 코드

def solution(s):
    # 대소문자 구별하지 않기 위해 s를 소문자 변환 ==> p와 y의 수가 같으면 True 아니면 False
    return True if s.lower().count('p') == s.lower().count('y') else False