티스토리 뷰

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

 

2292번: 벌집

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

www.acmicpc.net

 

위 문제를 살펴보면 아래와 같은 규칙을 가집니다.

 

 

따라서 주어진 수가 끝수 +  (6*(이동할 칸수 - 1))보다 작다면 이때의 이동할 칸 수를 출력하면 됩니다.

끝수는 이전 단계에서 6*(이동할 칸 수 - 1)입니다.

 

자바 코드는 다음과 같습니다.

 

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 num = Integer.parseInt(br.readLine());

        int answer = 1;

        if (num > 1) {
            int i = 1;
            int lastNum = 1;
            while (true) {
                if (num <= lastNum + (i * 6)) {
                    answer = i + 1;
                    break;
                } else {
                    lastNum += (i * 6);
                    i++;
                }
            }
        }

        System.out.println(answer);
    }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함