머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.
1 ≤ order ≤ 1,000,000
입출력 예 #1
입출력 예 #2
숫자를 문자열로 바꾸고 해당 문자열 안에서 3, 6, 9 가 있으면 박수 칠 횟수를 1씩 더해주면 된다고 생각했다.
def solution(order):
count = 0
order_str = str(order)
if order_str.count('3') >= 1 or order_str.count('6') >= 1 or order_str.count('9') >= 1:
count += 1
return count
else:
return 0
그런데 이 코드의 문제는 3, 6, 9 가 숫자에 2개 이상 들어갈 때는 셀 수가 없다는 점
이다.
if문을 3, 6, 9가 포함되는 횟수가 0 이상일 때로 만들어줬지만 그래도 박수 칠 횟수(count)는 여전히 1씩만 올라가는 게 문제인 것 같았다.
거의 다 푼 것 같은데 힌트를 못 찾겠어서 결국 실패. ^_ㅠ
def solution(order):
count = 0
order_str = str(order)
for i in range(len(order_str)):
if order_str[i] == '3' or order_str[i] == '6' or order_str[i] == '9':
count += 1
return count
(정답 코드를 보니 거의 다 왔는데...)
문자열이나 배열에서 해당 문자열 여부를 찾아줄 때는 반복문
을 사용해야 한다.
부등호 쓸 필요 없고 동등 연산자로 체크해주면 된다!