https://school.programmers.co.kr/learn/courses/30/lessons/12916
처음에는 다음과 같이 무지성 반복문으로 풀었으나.. 정확성이 60점으로 오답 판정이 나왔다.
def solution(s):
s_list = list(s)
n = len(s_list)
pn = 0
yn = 0
for i in range(n):
if s_list[i] == 'p':
pn += 1
elif s_list[i] == 'y':
yn += 1
if pn == yn:
return 'true'
else:
return 'false'
좀 더 다른 방법을 생각해봤다. count 함수를 써보기로 했다.
def solution(s):
s_list = list(s)
pn = s_list.count('p')
yn = s_list.count('y')
if pn == yn:
return True
else:
return False
??? 이번에도 60점, 오답 판정이다. 알고보니 문제를 잘못읽었다. ;;
대문자와 소문자는 구별하지 않는다고 한다.
다음과 같이 문자열을 전부 소문자로 변환 후 실행하면 잘 된다.
s = s.lower()만 추가하면 된다.
def solution(s):
# 입력 문자열을 모두 소문자로 변환
s = s.lower()
# 'p'와 'y'의 개수를 센다
pn = s.count('p')
yn = s.count('y')
# 'p'와 'y'의 개수가 같으면 True, 그렇지 않으면 False 반환
if pn == yn:
return True
else:
return False
# 함수 호출 예시
s = "Pyy"
print(solution(s)) # false
참고로, 마지막에 조건문을 쓴 부분은
if pn == yn:
return True
else:
return False
아래와 같이 축약이 가능하다.
return pn == yn
다른 사람의 풀이를 보니 lower함수와 count함수를 동시에 쓸 수 있는 모양이다. 참고하자.
def numPY(s):
# 함수를 완성하세요
return s.lower().count('p') == s.lower().count('y')
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( numPY("pPoooyY") )
print( numPY("Pyy") )
'Algorithm > Programmers lv.1' 카테고리의 다른 글
[프로그래머스] 정수 제급곤 판별(feat.정수인지 아닌지 확인하는 법) (0) | 2024.07.02 |
---|---|
[프로그래머스] 정수 내림차순으로 배치하기 (feat. join함수) (0) | 2024.07.02 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2024.07.02 |
[프로그래머스] 자릿수 더하기 (feat.자연수를 배열로 나열하는 법) (0) | 2024.07.02 |
[프로그래머스] 문자열을 정수로 바꾸기 (0) | 2024.07.01 |