[C++] 백준 8단계 - 2292번 문제 (벌집)자료구조 & 알고리즘/BOJ2023. 4. 25. 15:10
Table of Contents
문제설명
소스코드
#include <iostream>
using namespace std;
int main()
{
int N; int idx = 1;
cin >> N;
--N;
while (N > 0)
{
N -= (idx * 6);
++idx;
}
cout << idx;
}
풀이
- 정육각형의 각 변에 정육각형이 계속 붙는 벌집구조이다.
- 첫 정육각형에서 다음으로 큰 정육각형 그 다음으로 큰 정육각형....의 시작 순서는 아래와 같다.
- 1 -> 2 -> 8 -> 20 -> 38 -> 62 ...
- 즉 첫번째 항을 제외하고, 6의 배수로 증가하는 수열이다.
- 따라서 N을 맨 처음에 1빼주고 계속 6의 배수만큼 빼주고 idx를 1증가 시킨다.
- N이 0 또는 음수가 되면 루프를 탈출한다.
- idx를 출력한다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 10단계 - 27323번 문제 (직사각형) (0) | 2023.05.09 |
---|---|
[C++] 백준 8단계 - 2869번 문제 (달팽이는 올라가고 싶다) (0) | 2023.05.08 |
[C++] 백준 11718번 문제 (그대로 출력하기) (0) | 2023.04.25 |
[C++] 백준 8단계 - 2903번 문제 (중앙 이동 알고리즘) (0) | 2023.04.24 |
[C++] 백준 8단계 - 2720번 문제 (세탁소 사장 동혁) (0) | 2023.04.23 |