부제굴능
article thumbnail

 

해당 문제는 간단한 등차수열만 사용하여 풀 수 있습니다.

 

저는 벌집의 n번째 겹을 이용하여 풀었는데요

 

1번째 겹 : 1

2번째 겹: 2, 3, 4, 5, 6, 7

3번째 겹: 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19

4번째 겹: 20, 21, 22, 23, 24, 25, 26. 27, 28 ... 37

.

.

.

 

n번째 겹에서 나타나는 규칙을 찾아보면 다음과 같습니다.

 

2번째 겹의 마지막으로 나타나는 숫자는 1 + 6

3번째 겹의 마지막으로 나타나는 숫자는 1 + 6 + 6 + 6

4번째 겹의 마지막으로 나타나는 숫자는 1 + 6 + 6 + 6 + 6 + 6 + 6

 

입니다.

 

수열의 공차는 6, 12, 18, 24 가 될거구요

 

공차의 공차는 6이 됩니다.

 

이를 바탕으로 코딩 해볼게요

 

#include <stdio.h>

int main() {
    //6, 12, 18, 24
    int n;
    int m = 0;
    int sum = 1;
    int cnt = 0;

    scanf("%d", &n);

    while(sum < n) {
        m += 6;
        sum += m;
        cnt++;
    }
    printf("%d", cnt + 1);

    return 0;
}

m이 공차이구요

sum은 해당 공차를 바탕으로 n번째 수열의 값을 구합니다.

 

그리고 원하는 숫자가 해당 수열 범위 안에 있을경우 while 문을 빠져나오고

 

출력값은 모든 벌집의 갯수를 구해야 하므로 1을 더한값을 출력해주었습니다.

'algorithm > baekjoon' 카테고리의 다른 글

[C] 백준 2869번 write-up  (0) 2023.01.03
[C] 백준 1193번 write-up  (0) 2023.01.03
[C] 백준 1712번 write-up  (0) 2023.01.02
[C] 백준 1316번 write-up  (0) 2023.01.02
[C] 백준/2941번 write-up  (0) 2023.01.02
profile

부제굴능

@magarets

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!