반응형
[1] 백준 카테고리
단계별로 풀어보기
기본 수학
2단계 2292번 문제
벌집 문제
https://www.acmicpc.net/problem/2292
[2] 문제
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.
1. 입력
첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.
2. 출력
입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.
3. 예제 입력 1
13
4.예제 출력 1
3
[3] 정답
1. 정답 해설 미포함
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int count = 1;
int range = 2;
if (n == 1) {
System.out.print(1);
}
else {
while (range <= n) {
range = range + (6 * count);
count++;
}
System.out.print(count);
}
}
}
2. 정답 해설 포함
import java.util.Scanner;
// java.util.Scanner 클래스를 import 한다.
public class Main {
// 접근제어자 public으로 main class를 선언한다.
public static void main(String[] args) {
// 접근제어자 public으로 메모리에 상주하게 리턴값이 없이 main 함수를 선언한다.
Scanner in = new Scanner(System.in);
// Scanner 객체 in를 선언한다.
int n = in.nextInt();
// int형 변수 n를 선언하고 값을 입력받아 저장한다.
int count = 1;
// int 형 변수 count를 선언하고 값 1를 저장한다.
int range = 2;
// int 형 변수 range를 선언하고 값 2를 저장한다.
if (n == 1) {
// 변수 n의 값이 1일때 괄호 안의 문장이 실행된다.
System.out.print(1);
// 1를 출력한다.
}
else {
while (range <= n) {
// 변수 range에 저장된 값이 변수 n에 저장된 값 이하일때 while문이 실행된다.
range = range + (6 * count);
count++;
/* 8 = 2 + (6) 이 처음 실행된다. count 값이 1 증가해서 2가 된다.
while 문 조건값을 비교한다 range <= n 일 경우 while 문이 한번 더 실행된다.
14 = 2 + (12)가 두 번째로 실행된다. count 값이 1 증가해서 3이 된다.
또 while 문 조건값을 비교한다. range <= n일 경우 while 문이 한번 더 실행된다.
계속해서 반복된다. range > n일 때까지 반복된다.
*/
}
System.out.print(count);
// count 값을 출력한다.
}
}
}
방의 개수가 6씩 늘어나는 규칙성을 띤다.
0개를 지날때 1~1(1개)
1개를 지날때 2~7(6개)
2개를 지날때 8~19(12개)
3개를 지날때 20~37(18개)
4개를 지날때 38~61(24개)
방의 개수가 등차수열을 띄므로 등차수열꼴로 코드를 짜주면 된다.
반응형
'프로그래밍 > 백준 문제 풀이(자바)' 카테고리의 다른 글
백준 2869번 자바 문제 답/해설(달팽이는 올라가고 싶다 문제) (0) | 2021.12.16 |
---|---|
백준 1193번 자바 문제 답/해설(분수찾기 문제) (0) | 2021.12.15 |
백준 1712번 자바 문제 답/해설(손익분기점 문제) (0) | 2021.12.13 |
백준 1316번 자바 문제 답/해설(그룹 단어 체커 문제) (0) | 2021.12.12 |
백준 2941번 자바 문제 답/해설(크로아티아 알파벳 문제) (0) | 2021.12.11 |