문제 : https://www.acmicpc.net/problem/17614
17614번: 369
민수는 같은 반 친구들과 369게임을 하고 있다. 369게임은 여러 명이 원형으로 둘러 앉아 시작 위치의 사람이 1을 외치며 시작된다. 이후 시계방향으로 돌아가며 2, 3, 4와 같이 1씩 증가된 수가 자
www.acmicpc.net
문제 파악하기
1부터 시작해서 N까지 369 게임이 진행되었을 때, 나오는 모든 박수의 수를 구하는 전형적인 문제입니다. N의 범위가 최대 106이기 때문에 단순히 반복문을 사용하면 문제를 해결할 수 있습니다.
문제 해결하기
369 게임은 숫자에 3, 6, 9가 포함된 개수만큼 박수를 쳐야 하는 게임입니다. 따라서, 1부터 N까지 숫자를 모두 확인하면서 범위 내 숫자 i에 3, 6, 9가 몇 개 포함되었는지 확인하면 원하는 총 박수 횟수를 구할 수 있습니다. 해당 알고리즘은 중첩 반복문으로 구할 수 있으며, 조건을 만족할 때마다 횟수를 증가시켜 준 다음, 전체 박수친 횟수를 출력하면 됩니다.
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <stdio.h>
int N, t, cnt;
int main() {
scanf("%d", &N);
for(int i=1;i<=N;i++) {
t = i;
while(t) {
if(t%10 == 3 or t%10 == 6 or t%10 == 9) cnt++;
t /= 10;
}
}
printf("%d", cnt);
}
|
cs |
후기
기본적인 중첩 반복문 문제입니다. 중첩 반복문을 연습하기에 좋은 문제라고 생각합니다.
'문제 노트 > 정올' 카테고리의 다른 글
369 게임( BOJ 10802 ) (0) | 2021.11.20 |
---|---|
막대기( BOJ 17608 ) (0) | 2021.11.15 |
회문( BOJ 17609 ) (0) | 2021.11.12 |
박 터뜨리기( BOJ 19939 ) (0) | 2021.11.02 |
피자 오븐( BOJ 19940 ) (0) | 2021.11.01 |