본문 바로가기
  • Let's study
PS/백준

[C++] 백준 2292번: 벌집

by 코딩고수이고파 2020. 12. 26.

1. 벌집의 개수 num는 1, 6, 12, 18... 6의 배수로 늘어난다.

2. 각 벌집은 6의 배수로 늘어나므로 1, 2~7, 8~19... 순으로 증가하는데 이를 이용한다.

3. 따라서 입력받은 숫자가 어느 벌집의 범위에 해당하는 지 알면 최단거리의 방 개수를 알 수 있다.

 

num은 주위 벌집의 개수이므로 cnt * 6, 이후 cnt++

range는 6의 배수로 늘어나는 벌집의 범위, 따라서 num을 더해주면서 늘려간다.

#include <iostream>

using namespace std;

int main(void) {
	int n;
	cin >> n;

	int cnt = 1;
	long long num = 1; // 주위 숫자 개수
	long long range = 1;//주위 숫자 중 최대 수

	while (range < n) {
		num = 6 * cnt++;
		range +=num;
	}

	cout << cnt;
	return 0;
}

'PS > 백준' 카테고리의 다른 글

[C++] 백준 2110번: 공유기 설치  (0) 2020.12.30
[C++] 백준 10870번: 피보나치 수 5  (0) 2020.12.27
[C++] 백준 2839번: 설탕 배달  (0) 2020.12.26
[C++] 백준 7568번: 덩치  (0) 2020.12.23
[C++] 백준 2231: 분해합  (0) 2020.12.23

댓글