• 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;
}

์š”์ 

๊ทœ์น™์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๊ทœ์น™ ํ™•์‹คํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ธฐ