gimmickbutreal

[백준/자바] 2292번 해설 - Java 본문

Algorithm/Java

[백준/자바] 2292번 해설 - Java

isshosng 2022. 2. 27. 22:17

https://www.acmicpc.net/problem/2292

 

2292번: 벌집

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌

www.acmicpc.net

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
    public static void main(String[] args) throws IOException{
 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
 
        int N = Integer.parseInt(str);
        // int형 변수 N를 선언하고 값을 입력받아 저장
        // readLine method는 문자열로 데이터를 읽으므로 int형으로 쓰기 위해 String >> int로 변환해주는 과정임
        int cnt = 1;
        int range = 2;
 
 
        if (N == 1) {
            // 변수 n의 값이 1일때 괄호 안의 문장이 실행된다.
            System.out.print(1);
            // 1를 출력한다.
        }
 
        else {
            while (range <= N) {
                // range에 저장된 값이 변수 N에 저장된 값 이하일때 while문 실행
                range = range + (6 * cnt);
                cnt++;
                /* 8 = 2 + (6) 이 처음 실행 
                range <= n 일 경우 while 문이 한번 더 실행됨
                14 = 2 + (12)가 두 번째로 실행됨
                cnt 값 +1 = 3
                range > n일 때까지 반복
                 */
            }
            System.out.print(cnt);
        }
    }
}
cs