728x90
출처-https://www.acmicpc.net/problem/2292
2292번: 벌집
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌��
www.acmicpc.net


내 생각

위의 그림에서 각각 다른 색으로 층을 나눠 보았다.
다음 그림을 표로 정리하면 아래와 같다.
| 층 | 현재 층의 육각형의 개수 | 전체 층의 육각형의 개수 |
| 1 | 1 | 1 |
| 2 | 6 | 7 |
| 3 | 12 | 19 |
| 4 | 18 | 37 |
| 5 | 24 | 61 |
| ~ | ~ | ~ |
이 표에서 알 수 있는 사실은 각 층은 전의 층보다 6개만큼의 육각형이 더 있다.
각 면에서 하나씩 육각형이 더 생기는 구조이다.
6개의 면에서 하나씩 더 생기므로 층이 증가할 때마다 6개 만큼의 육각형이 더 생기는 것이다.
n층에서 중앙인 1 즉, 1층으로 가기 위해서는 n개의 방을 지나가야 한다.
따라서 전달 받은 숫자가 몇 층에 존재하는지만 알면 최소 몇 개의 방을 지나가야 하는지 알 수 있다.
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int layer = 1;
int num = 0; // 현재 층의 육각형의 개수
int totalNum = 1; // 전체 층의 육각형의 개수
while (true) {
if (n <= totalNum)
break;
else {
num += 6;
totalNum+=num;
layer++;
}
}
System.out.println(layer);
}
}
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
| [백준, BOJ 2869] 달팽이는 올라가고 싶다 (java) (0) | 2020.09.04 |
|---|---|
| [백준, BOJ 1193] 분수찾기 (java) (0) | 2020.09.04 |
| [백준, BOJ 2839] 설탕 배달 (java) (0) | 2020.08.31 |
| [백준, BOJ 1712] 손익분기점 (java) (0) | 2020.08.31 |
| [백준, BOJ 1316] 그룹 단어 체커 (java) (0) | 2020.08.29 |