https://programmers.co.kr/learn/courses/30/lessons/12916

 

코딩테스트 연습 - 문자열 내 p와 y의 개수

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를

programmers.co.kr


풀이 과정

1. 문자열 s의 문자를 하나 하나 들여다 보면서 p, P를 인식시 p의 개수를 늘리고, y, Y를 인식시 y의 개수를 늘리면서 카운팅하는 것이 정석적인 풀이 방법이다.

 

파이썬 내장 함수를 좀 더 간결하게 해결할 수 있다.

 

2. lower()를 이용해 대문자를 전부 다 소문자로 바꾸고 count()로 p와 y의 개수를 세주고 같은지 체크해주면 된다


소스 코드

첫번째 방법

def solution(s):\
    count_p = 0
    count_y = 0
    for letter in s:
        if letter in ('p', 'P'):
            count_p += 1
        if letter in ('y', 'Y'):
            count_y += 1

    return count_p == count_y

 

두번째 방법

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

+ Recent posts