# [Algorithm/JS] ๋ฐฑ์ค 2292๋ฒ ๋ฒ์ง
๐ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ (opens new window)
# Question
์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ก๊ฐํ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฒ์ง์ด ์๋ค. ๊ทธ๋ฆผ์์ ๋ณด๋ ๋ฐ์ ๊ฐ์ด ์ค์์ ๋ฐฉ 1๋ถํฐ ์์ํด์ ์ด์ํ๋ ๋ฐฉ์ ๋์๊ฐ๋ฉด์ 1์ฉ ์ฆ๊ฐํ๋ ๋ฒํธ๋ฅผ ์ฃผ์๋ก ๋งค๊ธธ ์ ์๋ค. ์ซ์ N์ด ์ฃผ์ด์ก์ ๋, ๋ฒ์ง์ ์ค์ 1์์ N๋ฒ ๋ฐฉ๊น์ง ์ต์ ๊ฐ์์ ๋ฐฉ์ ์ง๋์ ๊ฐ ๋ ๋ช ๊ฐ์ ๋ฐฉ์ ์ง๋๊ฐ๋์ง(์์๊ณผ ๋์ ํฌํจํ์ฌ)๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์๋ฅผ ๋ค๋ฉด, 13๊น์ง๋ 3๊ฐ, 58๊น์ง๋ 5๊ฐ๋ฅผ ์ง๋๋ค.
# Input
์ฒซ์งธ ์ค์ N(1 โค N โค 1,000,000,000)์ด ์ฃผ์ด์ง๋ค.
# Output
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๋ฐฉ๊น์ง ์ต์ ๊ฐ์์ ๋ฐฉ์ ์ง๋์ ๊ฐ ๋ ๋ช ๊ฐ์ ๋ฐฉ์ ์ง๋๋์ง ์ถ๋ ฅํ๋ค.
# Example
# Input 1
13
# Output 1
3
# Solution
const input = require('fs').readFileSync('../input.txt').toString().trim();
let range = 1;
let count = 1;
while (range < input) {
range += 6 * count;
count++;
}
console.log(count);
2
3
4
5
6
7
8
9
1๋ฒ ๋ฒ์ง์ ์ค์ฌ์ผ๋ก ํ ์ฌ์ดํด์ฉ ๋์ด๋ ๋๋ง๋ค 6๊ฐ์ ๋ฒ์ง์ด ์ถ๊ฐ๋๋ค.
58์ ์๋ก ๋ค๋ฉด, 58๊น์ง ๊ฐ๊ธฐ์ํ ์ต๋จ ๊ฒฝ๋ก๋ 1๋ฒ ๋ฒ์ง์ ์ค์ฌ์ผ๋ก ๊ฐ์ธ๊ณ ์๋ ์ฌ์ดํด์ด ๋ช๊ฒน์ด๋๋ก ๊ณ์ฐํ ์ ์๋ค.
๋ฐ๋ผ์ ๋ฒ์๋ฅผ ๊ณ์ฐํ range ๋ณ์์ ๋ช๊ฐ์ ๋ฐฉ์ ์ง๋๊ฐ๋ ์ง๋ฅผ ํ๋ณํ count ๋ณ์๋ฅผ ์ ์ธ ๋ฐ 1๋ก ์ด๊ธฐํํ๋ค.
while ๋ฌธ์ ์ฌ์ฉํด range ๊ฐ input ๊ฐ๋ณด๋ค ์์ ๋๊น์ง ํด๋น ์ค์ฝํ๋ฅผ ๋ฐ๋ณตํ๊ณ , range ์ **6 * ๋ฐ๋ณตํ๋ ํ์**๋ฅผ ๋์ ํ๋ค.
๋ฐ๋ผ์ count ํตํด ๋ฐฉ์ ๋ช๋ฒ์ง๋ input ๊ฐ์ ๋๋ฌํ๋์ง ํ์ธํ ์ ์๋ค.