728x90
백준 2292번 벌집
문제 설명
육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.
입력
첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.
출력
입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.
나의 문제 풀이 코드
import java.io.*;
public class bj2292 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine()) - 1;
int count = 0;
if (N == 0)
count = 1;
else {
while (N > 0) {
N = N - (6 * count);
count++;
}
}
bw.write(String.valueOf(count));
bw.flush();
}
}
문제 풀이 코멘트
사실 이 글을 쓰는 시점에 N값의 범위를 보고 당황하긴했지만 일단 맞추었으니 마저 글을 쓴다..
벌집의 그림을 보며 각 라인(동그랗게 이어지는 벌집)의 마지막 숫자를 보면 1, 7, 19, 37, 61 이다.
그리고 그 숫자들을 각각 왼쪽에 있는 숫자로 빼면 1, 6, 12, 18, 24가 나온다.
즉 6의 배수로 벌집이 형성된다.
이전 포스트와 마찬가지로 규칙만 찾을 수 있다면 쉽게 풀 수 있는 문제였다.
728x90
'공log > [P&B]' 카테고리의 다른 글
[P&B] #70 BAEKJOON 11653 (0) | 2023.09.19 |
---|---|
[P&B] #69 BAEKJOON 1193 (0) | 2023.09.18 |
[P&B] #67 BAEKJOON 2903 (0) | 2023.09.18 |
[P&B] #66 BAEKJOON 2869 (0) | 2023.09.18 |
[P&B] #65 BAEKJOON 11005 (0) | 2023.09.18 |