일상
[C++] 백준 2292 : 벌집 본문
풀이 과정
벌집이 생성되는 과정을 풀어보면
1
2, 3, 4, 5, 6, 7
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37
38, 39, ... , 61
1에서 6을 더한 7까지가 거리가 2가 되고
7에서 6의 2배인 12를 더한 19까지가 거리가 3이 되며
19에서 6의 3배인 18을 더한 37까지의 거리가 4가 된다.
이 규칙에 따라서 코딩을 진행하면 된다.
먼저 반복문에 주요한 변수는 num과 i이다.
num은 특정 거리에서 맨 마지막 수를 나타낸다고 생각하면 된다. 따라서 계속 누적을 해줘야한다는 것이 핵심이다.
i는 거리를 나타낸다고 생각하면 편하다.
반복문에서 입력된 N이 num보다 작으면 반복문을 빠져나오게 되며 i를 출력하게 된다.
#include <iostream>
int main() {
int N;
std::cin >> N;
int num = 1;
int i = 1;
while (true) {
if (N <= num) {
break;
}
num += i * 6;
i++;
}
std::cout << i << "\n";
}
'programming' 카테고리의 다른 글
[C++] 백준 1212 : 8진수 2진수 (0) | 2024.04.27 |
---|---|
[C++] 백준 2775 : 부녀회장이 될테야 (1) | 2024.04.18 |
[C++] 백준 2903 : 중앙 이동 알고리즘 (0) | 2023.07.04 |
[C++] 백준 2563 : 색종이 (0) | 2023.06.21 |
[C++] 백준 10798: 세로 읽기 (0) | 2023.06.20 |
Comments