코딩테스트/백준

[백준 JAVA] 2292 - 벌집

kittae 2024. 11. 29. 01:21

내 기준 생각보다 어려운 문제였다.

 

해당 문제를 분석하던 중, 6의 배수로 이루어졌다는 것을 알게 되었지만, 그 후의 로직을 고민하는데 오랜 시간이 걸렸다.

계속 고민하다가 정 안되서 살짝 힌트를 보게 되었다.

 

나의 로직 구현이다

1 ~ 7 (6) - 1
8 ~ 19 (12) - 2
20 ~ 37 (18) - 3
38 ~ 61(24) - 4
25일 때,
1. 6
2 12
3 18
4 24

 

문제 분석했지만, 중간에 포기한 것을 볼 수 있다. 힌트를 보니, 최솟값을 염두해두고 로직을 짜는 것을 보았다.

 

[최종코드]

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int num = 1;
        int i = 1;
        int count = 1;

        if (n == 1)
            count = 1;

        else {

            while (true) {

                if (n <= num)
                    break;

                num += (i++ * 6);
                count++;
            }
        }

        System.out.println(count);
    }
}

 

배운점

나는 아직 수학 관련 문제에 약한가 보다..

이번 기회에 꼼꼼히 배우는 시간을 가지게 되었다.