Baekjoon 문제 풀기 (2292번 : 벌집) Java

2292번 : 벌집

1. 문제읽기


규칙 수열 구현하기

예전에 파이썬으로 2번이나 풀어서 그런지 이번엔 쉽게 규칙을 찾을 수 있었다.

2. 제출 코드


벌집이 어떻게 늘어가는지 차근차근 하나씩 과정을 풀어서 쓰는게 도움이 되었다.
bee 변수와 count 변수를 초기화시키는 과정이 조금 어려웠는데, 테스트 케이스를 여러개 돌려보고 알아냈다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BOJ2292 {
    public static void main(String[] args) throws IOException {
        // 1(1) -> 1개 : 6*0
        // 2~7(6) -> 2개 : 6*0+1부터 6*1개
        // 8~19(12) -> 3개 : 1+6+1부터 6*2개
        // 20~37(18) -> 4개 : 1+6+12+1부터 6*3개
        // 38~61(24) -> 5개 : 1+6+12+18+1부터 6*4개
        int bee = 1;
        int count = 0;
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(bf.readLine());

        while(n > 0) {
            n-= bee;
            count++;
            bee = 6*count;
        }
        System.out.println(count);
    }
}

3. 공부할 것


변수 초기화 말고도 막혔던 부분이 있었는데,
처음에는 while(n --> 0)으로 코드를 짰었다. 코드가 어떻게 작동하는지 잘 모르고 짠 게 실수였다.
디버깅을 하면서 보니 n이 하나씩 줄어드는 것을 알게 되었고, 그제서야 이 코드의 뜻이 값이 0보다 클 경우 말고도 n 값을 하나씩 줄인다 라는 뜻이 있었다는 것을 기억해냈다.
잘 모르는 코드는 제대로 알고 쓰자..

댓글남기기