-
백준 2292 - 벌집백준 algorithm 2019. 9. 8. 00:00반응형
그림을 그려보면 1의 숫자를 둘러싼 원이 계속 생기는 것을 볼 수 있다. 그 원에 속하는 숫자들까지는 거쳐가야 하는 횟수가 동일하다.
그 원들은 6의 배수로 크기가 커져 간다.
1(방의번호)=>1(거쳐야하는 횟수)2~7 => 2
8~19 => 3
20~37 => 4이런 방식이다.
그래서 나는 prev= 6*i +prev라는 식을 세워 방의 번호가 속하는 범위를 만들었다.그 이후 i를 통해 몇번을 통해 그 방까지 갈 수 있는지 알아낼 수 있다.
#include <iostream> using namespace std; int main() { int cnt = 0;//지나가는 방의 갯수변수 int num=0; int prev = 1; cin >> num; for (int i = 1; i < 1000000000; i++) { prev = (6 * i) + prev; if (num == 1) { cnt = 1; break; } else if (num <= prev) { cnt = i + 1; break; } } cout << cnt<<'\n'; return 0; }
반응형'백준 algorithm' 카테고리의 다른 글
백준 2750 - 수 정렬하기 , 백준 2751 - 수 정렬하기 2 (0) 2019.09.10 백준 2231 - 분해합 (0) 2019.09.10 백준 15552 - 빠른 A+B (0) 2019.09.07 백준 2562 - 최댓값 (0) 2019.09.06 백준 2577 - 숫자의 개수 (0) 2019.09.06