코딩 테스트/백준

[백준2292/JAVA] 벌집

리져니 2021. 12. 23. 23:42

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

 

2292번: 벌집

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

www.acmicpc.net

 

풀이

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

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())-1;
        int k =1;

        while(n>0){
            n = n-(6*k);
            k++;
        }

        System.out.println(k);
    }
}

 

 

설명

시작점부터 n사이의 숫자중 k거리를 갖는 수들의 범위는 "n-{6*(k-1)}+1부터 n이 된다.

때문에 입력받은 n에서 시작점 1을 뺸 n-1에서 6*1, 6*2,... 6*k을 차례대로 빼준 값이 음수가 될때의 k값을 반환해주면 이 k값이 된다.

728x90

'코딩 테스트 > 백준' 카테고리의 다른 글

[백준15829/JAVA] Hashing  (0) 2021.12.29
[백준2798/JAVA] 블랙잭  (0) 2021.12.29
[백준22775/JAVA] 부녀회장이 될테야  (0) 2021.12.23
[백준10250/JAVA] ACM 호텔  (0) 2021.12.22
[백준1085/JAVA] 직사각형에서 탈출  (0) 2021.10.25