📝 문제
🔑 풀이 과정
조건이 "최소" 개수의 방을 지나서 갈때이다.
최소 개수의 방을 지나려면 벌집이 한 둘레를 꽉 채우고 다음 둘레로 이동해야 한다. (말로 표현을 못하겠음ㅋㅋㅠㅠㅠ)
그랬을 때, 각 둘레별로 "몇번까지 들어갈수 있는지" 구하고 그 규칙을 찾는다.
for문을 돌리면서 입력받은 N이 둘레의 최대번호보다 작거나 같은지 확인
→ 만약 N이 더 크다? 그러면 그 둘레에 포함되지 않는거니 다음 둘레로 확인
→ N이 최대번호보다 작거나 같으면, 그 둘레에 포함되는 거니깐 for문 탈출
🔓 답안
import java.io.*;
public class Main {
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());
int i;
for(i = 1; ; i++){
int max = (3 * i * (i-1)) + 1;
if(N <= max)
break;
}
bw.write(i + "\n");
bw.flush();
bw.close();
}
}
'PS > Baekjoon' 카테고리의 다른 글
[Baekjoon] 4153 - 직각삼각형 (0) | 2023.01.07 |
---|---|
[Baekjoon] 1712 - 손익분기점 (0) | 2023.01.06 |
[Baekjoon] 10817 - 세 수 (0) | 2023.01.04 |
[Baekjoon] 2525 - 오븐 시계 (0) | 2023.01.03 |
[Baekjoon] 2441 - 별 찍기 - 4 (0) | 2023.01.02 |
댓글