#57. 백준 2292번 문제 풀이: 벌집 | 문제 원본 보기 |
--입력-- 13 --출력-- 3
이 문제의 핵심은 규칙을 빨리 파악하는게 관건이다. 사실 프로그래밍 능력보다는 문제해결 능력이 요구되는 문제이다. 문제의 규칙을 찾아보면 벌집이 한겹에 6의 배수로 증가하는 것을 볼 수있다. 1겹:(2~7번)6개 방, 2겹:(8~19번)12개 방, 3겹:(20~37번) 18개 방 그러므로 제시한 수가 몇번째 겹이 들어가 있느냐를 계산해 주면 된다. -- 루프 (N 이 겹내갯수합 보다 작으면 계속) 방개수총합 = 방개수총합 + 겹 * 6 겹 += 1 루프 끝 출력(겹+1) --
#include <stdio.h>
int main() {
int n, cnt, room;
scanf("%d", &n); // 도착 방번호를 입력받는다.
cnt = 1; // 겹수(거치갈 방개수), 1부터 카운트
room = 1; // 방개수, 1부터 카운트
while(room < n) { // 현재 방개수가 도착 방번호보다 작으면 계속 루프
room += cnt * 6; // 한겹에 6의 배수씩 방개수 증가
cnt++;
}
printf("%d", cnt); // 방의 겹수, 즉 거쳐가야할 방의 개수 출력
return 0;
}