[백준][Python] 17614. 369
Bronze Ⅲ 🔗17614. 369
📝문제 요약
문제
민수는 같은 반 친구들과 369게임을 하고 있다. 369게임은 여러 명이 원형으로 둘러 앉아 시작 위치의 사람이 1을 외치며 시작된다. 이후 시계방향으로 돌아가며 2, 3, 4와 같이 1씩 증가된 수가 자기 수가 된다. 순서대로 돌아오는 자기 수에 3, 6, 혹은 9가 포함되어 있지 않다면 그 수를 말해야 하며, 3, 6, 혹은 9가 포함되어 있으면 그 개수만큼 박수를 쳐야 한다. 이 규칙을 지키지 못하면 게임이 종료된다.
민수는 369게임이 N까지 규칙을 지키며 진행된다면 그때까지의 들은 박수의 횟수 가 총 몇 번인지 궁금했다. 예를 들어 N = 14라면, 3, 6, 9, 13에서 각각 한 번의 박 수를 치게 되므로 총 4회의 박수를 듣게 될 것이다. N = 36이라면 3, 6, 9, 13, 16. 19. 23. 26. 29. 30. 31. 32. 33. 34. 35, 36에서 박수를 치게 되는데 33, 36에서는 각 각 두 번 박수를 쳐야 하므로 총 18회가 된다. 1 이상의 정수 N에 대하여 369게임을 N까지 규칙을 지키며 진행된다면 그때까지 듣게 되는 박수의 총 횟수를 계산하여 출력하는 프로그램을 작성하시오.
입력
첫 번째 줄에 정수 N이 주어진다 (1 ≤ N ≤ 106).
출력
박수의 총 횟수를 정수로 출력한다.
서브태스크
번호 | 배점 | 제한 |
---|---|---|
1 | 4 | N은 14 또는 36 |
2 | 5 | 1 ≤ N ≤ 10 |
3 | 11 | 1 ≤ N ≤ 100 |
4 | 38 | 1 ≤ N ≤ 10000 |
5 | 42 | 원래의 제약조건 이외에 아무 제약조건이 없다. |
✏️문제 풀이
- 정수
n
을 입력받음 - 박수의 횟수를 셀
cnt
초기화 - 1부터 n+1까지 순회
- 해당 숫자에 3, 6, 9가 있는지 확인하기 위해
i
를str
로 변환 i
에 3, 6, 9가 있다면 3, 6, 9의 개수를 카운팅
- 해당 숫자에 3, 6, 9가 있는지 확인하기 위해
- 박수의 횟수를 출력
코드와 함께 보는 풀이
# 정수 n 을 입력
n = int(input())
# 박수의 횟수를 셀 cnt 초기화
cnt = 0
# 1부터 n+1까지 순회
for i in range(1, n+1):
# i를 str로 변환
i = str(i)
# i에 3, 6, 9가 있다면 3, 6, 9의 개수를 cnt에 카운팅
if '3' in i or '6' in i or '9' in i:
cnt += i.count('3') + i.count('6') + i.count('9')
# 박수의 횟수를 출력
print(cnt)
💯제출 코드
n = int(input())
cnt = 0
for i in range(1, n+1):
i = str(i)
if '3' in i or '6' in i or '9' in i:
cnt += i.count('3') + i.count('6') + i.count('9')
print(cnt)
댓글남기기