Post

🧩 Beakjoon 2292 - λ²Œμ§‘

🧩 Beakjoon 2292 - λ²Œμ§‘

문제

μœ„μ˜ κ·Έλ¦Όκ³Ό 같이 μœ‘κ°ν˜•μœΌλ‘œ 이루어진 λ²Œμ§‘μ΄ μžˆλ‹€. κ·Έλ¦Όμ—μ„œ λ³΄λŠ” 바와 같이 μ€‘μ•™μ˜ λ°© 1λΆ€ν„° μ‹œμž‘ν•΄μ„œ μ΄μ›ƒν•˜λŠ” 방에 λŒμ•„κ°€λ©΄μ„œ 1μ”© μ¦κ°€ν•˜λŠ” 번호λ₯Ό μ£Όμ†Œλ‘œ λ§€κΈΈ 수 μžˆλ‹€.

숫자 N이 μ£Όμ–΄μ‘Œμ„ λ•Œ, λ²Œμ§‘μ˜ 쀑앙 1μ—μ„œ N번 λ°©κΉŒμ§€ μ΅œμ†Œ 개수의 방을 μ§€λ‚˜μ„œ 갈 λ•Œ λͺ‡ 개의 방을 μ§€λ‚˜κ°€λŠ”μ§€(μ‹œμž‘κ³Ό 끝을 ν¬ν•¨ν•˜μ—¬)λ₯Ό κ³„μ‚°ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. 예λ₯Ό λ“€λ©΄, 13κΉŒμ§€λŠ” 3개, 58κΉŒμ§€λŠ” 5개λ₯Ό μ§€λ‚œλ‹€.

μž…λ ₯

첫째 쀄에 N(1 ≀ N ≀ 1,000,000,000)이 μ£Όμ–΄μ§„λ‹€.

좜λ ₯

μž…λ ₯으둜 μ£Όμ–΄μ§„ λ°©κΉŒμ§€ μ΅œμ†Œ 개수의 방을 μ§€λ‚˜μ„œ 갈 λ•Œ λͺ‡ 개의 방을 μ§€λ‚˜λŠ”μ§€ 좜λ ₯ν•œλ‹€.

예제

βœ… μž…λ ₯ 1

1
13

βœ… 좜λ ₯ 1

1
3

μž‘μ„± μ½”λ“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Main {
	public static void main(String[] args) throws IOException {
		// 1. λ³€μˆ˜ μ„ μ–Έ 및 μ΄ˆκΈ°ν™”
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine()) - 1;
		int count = 1;
		
		// 2. λͺ‡ 개의 방을 μ§€λ‚˜μ•Ό ν•˜λŠ”μ§€ 계산
		while (n > 0) {
			n -= 6 * count++;
		}
		
		// 3. 좜λ ₯
		System.out.println(count);
	}
}
  • 문제의 λ²Œμ§‘μ€ 겹이 μŒ“μΌμˆ˜λ‘ 6의 배수만큼 방이 λŠ˜μ–΄λ‚œλ‹€.
This post is licensed under CC BY 4.0 by the author.