본문 바로가기

문제 노트/정올

369( BOJ 17614 )

문제 : 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