목차
https://www.acmicpc.net/problem/2292
코드
#include <iostream>
using namespace std;
int main() {
int n, room = 1, pass = 1;
cin >> n;
while((n - 1) > 0){
n -= 6 * pass++;
}
cout << pass;
}
설명
벌집에서 중앙 1을 기준으로 둘러싼 방의 끝번호가 있다.
1, 7, 19, 37, 61 ...
이 수의 규칙을 찾으면 간단하게 풀 수 있는 문제이다.
1 + 6 = 7
7 + 6 * 2 = 19
19 + 6 * 3 = 37
...
이전 끝번호 방에서 6 * n한 수가 다음 끝번호 숫자인것이다.
따라서 이 n을 통과한 방 개수로 가정을 하고 코드를 작성하면 풀 수 있는 문제였다.
'공부 > 백준(C++) - 2022~' 카테고리의 다른 글
백준 2775번: 부녀회장이 될테야 [C++] (0) | 2022.01.13 |
---|---|
백준 10250번: ACM호텔[C++] (0) | 2022.01.13 |
백준 2869번: 달팽이는 올라가고 싶다 [C++] (0) | 2022.01.13 |
백준 1193번: 분수찾기 [C++] (0) | 2022.01.12 |
백준 1712번: 손익분기점 [C++] (0) | 2022.01.12 |