해결방법
구조를 자세히 보면 한 층마다 6개씩 방의 개수가 늘어난다는 사실을 알 수 있다. 즉, 층이 늘어날 때마다 방의 개수가 6, 12, 18... 이런 순으로 늘어난다는 것이다. 따라서 입력받은 값보다 방의 개수가 많아지기 전까지 6 * 층의 수씩을 더해가면서 몇 개의 방을 지나는지를 측정하여 구할 수 있다.
정답 코드
#include <iostream>
using namespace std;
int main()
{
int N, ref = 1, count = 1;
cin >> N;
while (ref < N)
{
ref += 6 * count;
count++;
}
cout << count;
return 0;
}
'코딩테스트' 카테고리의 다른 글
BOJ - 블랙잭 2798 (0) | 2024.12.15 |
---|---|
BOJ - 학생 인기도 측정 25325 (0) | 2024.12.15 |
BOJ - 네 번째 점 3009 (0) | 2024.12.15 |
BOJ - 수 정렬하기 3 10989 (0) | 2024.12.15 |
BOJ - 알록달록 앵무새 28445 (0) | 2024.12.13 |