반응형
문제
풀이
벌집 한 바퀴를 층 하나라고 가정할 때, 층이 하나씩 높아질 때마다 층에 속하는 방의 개수가 6씩 늘어나는 것을 알 수 있다. 이를 기반으로, 층이 높아질수록 방의 개수를 더해주고, 들어가는 방의 개수를 제외하면 된다.
코드
package AlgorithmStudy.src.bronze;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class B2292_2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
if (1 > n || n > 1000000000) return;
int N = 6; // 1층부터 방 개수 계산
int cnt = 1; // 중앙방 포함하여 시작
if (n == 1) {
System.out.println(1);
return;
}
// 6 12 18 24 30
while (n > 1) {
n -= N; // 층이 높아질수록 들어가는 방 개수 제외
N += 6; // 층이 높아질수록 방 개수 6배씩 증가
cnt++; // 층
}
System.out.println(cnt);
}
}
반응형