알고리즘, SQL/알고리즘
백준 2292번 : 벌집
킹갓홍
2023. 12. 22. 22:35
간단하게 가운데 벌집모양부터 시작해서 인접한 변에 하나씩 추가되는 육각형에, 입력되는 숫자가 간운데로부터 몇번째에 접해있는지 찾는 문제이다!
육각형 하나를 방(room)이라고 생각했을 때, 가운데 1번방과 접해있는 가장 큰 방이 7이다.
7번방과 접해있는 가장 큰 방은 19번, 19번과 접해있는 가장 큰 방은 37번...
즉 1, 7, 19, 37, 61로 6의 배수만큼 커지는 것을 알 수 있다.
코드를 생성해보면..
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.nextLine());
int count = 1;
int room = 1;
while(true) {
if(num<=room) { //가장 큰 room의 값과 비교해서 작다면 반복문을 나온다.
break;
}
room =room+(6*count); //가장 큰 방의 값은 6의 배수만큼 커진다.
count++;
}
System.out.println(count);
}
}
위와 같이 풀 수 있다.