https://programmers.co.kr/learn/courses/30/lessons/12916
다음 문제는, 문자열 내 p와 y의 개수를 비교하고 같으면 True, 다르면 False를 반환하는 문제입니다.
- p or P를 발견하게 되면 count 증가
- y or Y를 발견하게 되면 count 감소
- count가 0일때 True, 아니라면 False 반환
def solution(s):
count = 0
for i in range(len(s)):
if int(s[i] == "p") | int(s[i] == "P"):
count += 1
elif int(s[i] == 'y') | int(s[i] == 'Y'):
count -= 1
return True if count == 0 else False
def numPY(s):
return s.lower().count('p') == s.lower().count('y')
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( numPY("pPoooyY") )
print( numPY("Pyy") )
-이 문제에서 크게 어려운 부분은 없었지만, 다른 사람이 푼 코드에서 소문자와 대문자를 신경 안쓰게 하기 위해 lower()를 이용해 count()로 비교하는 것이 되게 참신했다. 기존에 존재하는 라이브러리를 이용해 코드를 효율적으로 줄이는 로직에 대해 생각을 많이 해봐야겠다.