Algorithm

BOJ 2292 cpp 벌집

최강훈 2020. 11. 17. 10:17

BOJ 2292 cpp 벌집

백준 2292 c++ 벌집

 

문제 링크: www.acmicpc.net/problem/2292

 

난이도 하에 해당하는 문제들은 왜 처음 보면 전부 어려운 놈들 같을까?

벌집 문제를 보고 처음에는 bfs를 이용해 푸는 것이구나 라고 생각했는데, 생각해보니 dist배열을 어떻게 줘야 할지 모르겠어서 '어?' 싶었다. 그러나 이내 다음의 규칙을 찾고 왜 난이도 하의 문제인지 알게되었다.

 



정답코드

#include <bits/stdc++.h>
using namespace std;

int N;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> N;
    long long range = 2;
    long long add = 6;
    int ans = 2;

    if (N == 1)
        cout << "1";
    else
    {
        while (range <= N)
        {
            range += add;
            add += 6;
            ans += 1;
        }
        cout << ans - 1;
    }
    return 0;
}

 

 

여담이지만 이번 md 파일을 작성하다가 #을 치자마자 무의식적으로 include를 칠뻔했다.