SWEA
[SWEA] (D2) 1926. 간단한 369게임 / 파이썬(python)
Dev_Green
2022. 5. 11. 23:31
3 6 9 게임을 프로그램으로 제작중이다. 게임 규칙은 다음과 같다.
1. 숫자 1부터 순서대로 차례대로 말하되, “3” “6” “9” 가 들어가 있는 수는 말하지 않는다.
1 2 3 4 5 6 7 8 9…
2. "3" "6" "9"가 들어가 있는 수를 말하지 않는대신, 박수를 친다. 이 때, 박수는 해당 숫자가 들어간 개수만큼 쳐야 한다.
예를 들어 숫자 35의 경우 박수 한 번, 숫자 36의 경우 박수를 두번 쳐야 한다.
입력으로 정수 N 이 주어졌을 때, 1~N 까지의 숫자를
게임 규칙에 맞게 출력하는 프로그램을 작성하라.
박수를 치는 부분은 숫자 대신, 박수 횟수에 맞게 “-“ 를 출력한다.
여기서 주의해야 할 것은 박수 한 번 칠 때는 - 이며, 박수를 두 번 칠 때는 - - 가 아닌 -- 이다.
[제약사항]
N은 10이상 1,000이하의 정수이다. (10 ≤ N ≤ 1,000)
[입력]
입력으로 정수 N 이 주어진다.
[출력]
1 ~ N까지의 숫자를 게임 규칙에 맞게 출력한다.
https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PTeo6AHUDFAUq&categoryId=AV5PTeo6AHUDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=1
문제풀이
각 수가 가지고 있는 [3 or 6 or 9]의 개수만큼 -를 입력해주어야 한다.
따라서 숫자를 문자열로 바꾸어주고 한 숫자씩 쪼개어 리스트에 저장해준다.
리스트 내에 포함된 3, 6, 9의 개수를 모두 더하여 그것만큼 '-'를 반복출력한다.
n = int(input())
for i in range(1, n+1):
num = list(str(i))
if '3' in num or '6' in num or '9' in num:
c3 = num.count('3')
c6 = num.count('6')
c9 = num.count('9')
c = c3 + c6 + c9
print('-'*c, end=' ')
else:
print(i, end=' ')