• toc {:toc}

문제

https://www.acmicpc.net/JudgeOnline/upload/201009/3(2).png

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

μž…λ ₯

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

좜λ ₯

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

좜처:https://www.acmicpc.net/problem/2292

풀이

λ²Œμ§‘μ΄ λŠ˜μ–΄λ‚˜λŠ” κ°œμˆ˜μ— λŒ€ν•œ κ·œμΉ™μ„ νŒŒμ•…ν•˜λŠ” 것이 μš°μ„ μ΄λΌκ³  μƒκ°ν–ˆκ³  μ΅œλ‹¨κ±°λ¦¬μ˜ μˆ˜κ°€ λŠ˜μ–΄λ‚¨μ— 따라 λ²Œμ§‘μ˜ κ°œμˆ˜λ„ μ΅œλ‹¨κ±°λ¦¬ *6 μ”© + λœλ‹€λŠ” 것을 λ‚˜νƒ€λ‚΄ ν’€μ—ˆλ‹€.

#include <iostream>
 
using namespace std;
 
int main()
{
	int num, shortD=1, range=1;
	cin >> num;
	while(true)
	{
		if(num <= range)
		{
			cout << shortD << endl;
			break;
		}
		else
		{
			range += shortD*6;
			shortD++;
		}
	}
	
	return 0;
}

μš”μ 

κ·œμΉ™μ΄ μ‘΄μž¬ν•œλ‹€λ©΄ κ·œμΉ™ ν™•μ‹€ν•˜κ²Œ νŒŒμ•…ν•˜κΈ°