반응형
https://www.acmicpc.net/problem/2292
- 문제
- 문제 풀이
백준 2292번 벌집은 브론즈 난이도 2의 수학 문제이다. 이 문제는 사진같이 육각형으로 이루어진 벌집이 있고 번호 N으로 갈 때 몇 개의 방을 지나가는지를 출력하면 되는 문제이다. 이런 유형의 문제는 패턴을 찾는 게 중요하다.
우선 이 문제에서는 시작과 끝을 포함한다고 나와있다. 즉, 1번에서 시작해도 1번으로 갈 때 방 1개를 지나는 것이다.
그리고 N개의 방을 지날 때 갈 수 있는 갈 수 있는 방을 한번 보겠다.
N = 2일 때 2 ~ 7번 방까지 갈 수 있다.
N = 3일 때 8 ~ 19번 방까지 갈 수 있다.
N = 4일 때 20 ~ 37번 방까지 갈 수 있다.
이 패턴에서 볼 수 있듯이 N이 1씩 증가할 때마다 갈 수 있는 방의 개수가 6씩 증가한다. 따라서 N = 2일 때 6개의 방, N = 3일 때 12개의 방, 그리고 N = 4일 때 18개의 방을 갈 수 있다.
이 문제는 그래서 while-loop을 이용해서 풀 수 있다. 우선 가고 싶은 방 N이 입력으로 주어진다. 먼저 N에서 1을 빼주고 int형 변수 count를 1로 선언한다.
그리고 6의 배수만큼 빼주면서 count를 1씩 증가시킨다. N이 0 이하가 됐을 때의 count가 따라서 답이 된다.
자세한 코드는 밑에 있다.
- 코드
import java.io.*;
import java.util.*;
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());
if (n == 1) {
System.out.print(1);
return;
}
n -= 1;
int count = 1;
int minus = 6;
while (n > 0) {
n -= minus; //6의 배수만큼 빼줌
count++;
minus += 6;
}
System.out.print(count);
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 2869번 : 달팽이는 올라가고 싶다 – JAVA [자바] (0) | 2022.07.11 |
---|---|
[백준] 10250번 : ACM 호텔 – JAVA [자바] (0) | 2022.07.11 |
[백준] 2751번 : 수 정렬하기 2 – JAVA [자바] (0) | 2022.07.10 |
[백준] 2798번 : 블랙잭 – JAVA [자바] (0) | 2022.07.10 |
[백준] 2441번 : 별 찍기 - 4 – JAVA [자바] (0) | 2022.07.10 |
댓글