문제 |
2292번: 벌집
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌
www.acmicpc.net
코드 |
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
int res = 1;
int mx = 1;
for (int i = 1;; i++) {
if (n <= mx) break;
res++;
mx += i * 6;
}
cout << res;
return 0;
}
설명 |
1번 방은 1개의 방을 지나면 갈 수 있다.
2~7번 방은 2개의 방을 지나면 갈 수 있다.
8~19번 방은 3개의 방을 지나면 갈 수 있다.
20~37번 방은 4개의 방을 지나면 갈 수 있다.
38~61번 방은 5개의 방을 지나면 갈 수 있다.
지나가는 방이 하나 늘어날수록, 갈 수 있는 방의 개수는 6, 12, 18... 이렇게 증가하는 걸 알 수 있다.
'PS > BOJ' 카테고리의 다른 글
[C++] BOJ (백준) 2751 : 수 정렬하기 2 (0) | 2023.01.12 |
---|---|
[C++] BOJ (백준) 2609 : 최대공약수와 최소공배수 (0) | 2023.01.12 |
[C++] BOJ (백준) 2231 : 분해합 (0) | 2022.12.25 |
[C++] BOJ (백준) 2164 : 카드2 (0) | 2022.12.25 |
[C++] BOJ (백준) 2108 : 통계학 (0) | 2022.12.24 |