[c++/알고리즘] 백준 2292 벌집

1161 단어 알고리즘CC



규칙을 찾는 것이 중요한 문제.

나같은 경우는 각 칸(번호)에 어떻게 가느냐에 집중하다 보니, 코드도 복잡해지고 예외사항이 자꾸 발생하였다.


  • 벌집을 볼때
    1에서 1은 1번만에
    1에서 2~7까지는 2번만에
    1에서 8~19까지는 3번만에
    1에서 20~37까지는 4번만에 ''' 가는 것을 알 수 있다.

1 / 7 / 19 / 37 / ''' 은 공비가 6인 등비수열임을 이용한다.

// 백준 2292 벌집

#include <iostream>
#include <string>
using namespace std;

int main(){
    int n;
    cin >> n;

    int i=1;
    int cnt = i;
    while(n > i){
        i += (6*cnt);
        cnt++;
    }

    cout << cnt;
}

증가시킨 등비수열 값이 입력받은 값보다 클때까지
등비수열 값을 증가시키고,
몇번째 범위에 포함되는지 cnt를 출력.

다시해보고 확실하게 이해해야 겠다.

좋은 웹페이지 즐겨찾기