백준/기하
2292번: 벌집 [C++]
Koalitsiya
2023. 4. 6. 15:23
문제
풀이
n이 위치한 육각형이 중앙으로부터 몇 번째 육각형인지를 구하면 된다.
각 육각형의 마지막 수는 각각 1, 7, 19, 37, 61로 증가값이 6의 배수로 증가함을 알 수 있고 이를 통해 n에 도달하려면 최소 몇 번 이동해야하는지 알 수 있다.
#include <iostream>
using namespace std;
int main() {
int n;
int cnt = 0, sum = 0;
cin >> n;
for (int i = 0; sum < n; i++) {
if (i == 0) sum += 1;
else sum += 6 * i;
cnt++;
}
cout << cnt;
return 0;
}