티스토리 뷰

728x90
반응형

 

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

 

 


 

<나의 풀이>

def solution(s):
    answer = True
    p_cnt = 0
    y_cnt = 0
    
    for i in s :
        if i == 'p' or i == 'P' :
            p_cnt += 1
        if i == 'y' or i == 'Y' :
            y_cnt += 1
    
    if p_cnt != y_cnt :
        answer = False
            
    return answer

 

 

 

<다른 사람의 풀이>

def numPY(s):
    # 함수를 완성하세요
    return s.lower().count('p') == s.lower().count('y')

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( numPY("pPoooyY") )
print( numPY("Pyy") )
    
    
# <배운점> 
# => 소문자로 통일하여 count 함수로 결과를 도출한 점

 

from collections import Counter
def numPY(s):
    # 함수를 완성하세요
    c = Counter(s.lower())
    return c['y'] == c['p'] 

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( numPY("pPoooyY") )
print( numPY("Pyy") )


# <배운점> 
# => Counter함수 사용법
728x90
반응형
댓글