Question
๋ฐฑ์ค 2292๋ฒ : ๋ฒ์ง
์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ก๊ฐํ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฒ์ง์ด ์๋ค. ๊ทธ๋ฆผ์์ ๋ณด๋ ๋ฐ์ ๊ฐ์ด ์ค์์ ๋ฐฉ 1๋ถํฐ ์์ํด์ ์ด์ํ๋ ๋ฐฉ์ ๋์๊ฐ๋ฉด์ 1์ฉ ์ฆ๊ฐํ๋ ๋ฒํธ๋ฅผ ์ฃผ์๋ก ๋งค๊ธธ ์ ์๋ค. ์ซ์ N์ด ์ฃผ์ด์ก์ ๋,
๋ฒ์ง์ ์ค์ 1์์ N๋ฒ ๋ฐฉ๊น์ง ์ต์ ๊ฐ์์ ๋ฐฉ์ ์ง๋์ ๊ฐ ๋ ๋ช ๊ฐ์ ๋ฐฉ์ ์ง๋๊ฐ๋์ง(์์๊ณผ ๋์ ํฌํจํ์ฌ)๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์๋ฅผ ๋ค๋ฉด, 13๊น์ง๋ 3๊ฐ, 58๊น์ง๋ 5๊ฐ๋ฅผ ์ง๋๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N(1 ≤ N ≤ 1,000,000,000)์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๋ฐฉ๊น์ง ์ต์ ๊ฐ์์ ๋ฐฉ์ ์ง๋์ ๊ฐ ๋ ๋ช ๊ฐ์ ๋ฐฉ์ ์ง๋๋์ง ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์
13
์ถ๋ ฅ ์์
3
My Code
์ฒ์ ๋ฐ๋ณต๋ฌธ ์์ if๋ฌธ์ ์ฌ์ฉํ๋ ์ฝ๋๋ ์๊ฐ์ด ์ด๊ณผ๋ผ์ ํ๋ ธ๋ค.
let input = require('fs').readFileSync('example.txt').toString().trim().split('\n');
let num = Number(input[0]);
let count = 1;
let sum = 1 ;
while (true) {
if (num <= (6 * count) + sum ) {
break;
}
sum += 6;
count++;
}
console.log(count);
ํ๋ ธ์ต๋๋ค
WHY?
์ ํ์๊ฐ์ด 2์ด ์ฃผ์ด์ง ๋ฌธ์ ์๊ณ ๋ฐ๋ณต๋ฌธ์ ๊ณ์ํด์ ๋๋ฆฌ๋ค ๋ณด๋ ์๊ฐ ์ด๊ณผ๊ฐ ๋์ ํ๋ ธ๋ค. ์ญ์๋ ๋ฐ๋ณต๋ฌธ์ธ ์๋ ์ํ์ ์ธ ์ ๊ทผ์ ํด์ผํ๋ค. ์ก๊ฐํ์ ์ฌ์ฏ ๋ฉด์ผ๋ก ํ ์นธ์ฉ ์ฎ๊ฒจ์ง ๋๋ง๋ค 6๊ฐ, 18๊ฐ, 36๊ฐ.... ๊ฐ ์ก์ ๋ฐฐ์๊ฐ ๋ํด์ก์์ ์์์ผ๋ ๋ฐ๋ณต๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๊ฟ ํ์๊ฐ ์์๋ค.
let input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n');
let num = Number(input[0]);
let count = 1;
let sum = 1 ;
while (sum < num) {
sum += 6 * count ;
count++;
}
console.log(count);
๋ง์์ต๋๋ค!!
HOW? (ํ์ด๋ฐฉ๋ฒ)
1. ํ ์นธ์ฉ ์ฎ๊ฒจ์ง ๋๋ง๋ค ๋์ด๋๋ ๋ํ์ ๊ฐ์์ ๋ฐ๋ณต๋๋ ๊ณต์์ ์ฐพ์๋ธ๋ค.
์ด๋ํ์ ๊ฐ์ : 6๊ฐ โก๏ธ 18๊ฐ โก๏ธ 36๊ฐ โก๏ธ 60๊ฐ...์ด๋ค.
+12, +18, +24, +36 ์์ผ๋ก ์ฆ๊ฐํ๋ค.
2. ์ด๋ํ์ ๊ฐ์ (sum)์ ๋ช ๊ฐ์ ๋ฐฉ(count)์ ์ง๋๋์ง ์ด๋ฅผ ๋ณ์๋ก ๋๊ณ ํ์ฉํ๋ค.
3. ์์ํ๋ ๋ํ์ด ์๊ธฐ ๋๋ฌธ์ sum๊ณผ count๋ชจ๋ 1๋ก ์ ์ธ์ ํด์ค๋ค.
4. ์ ๋ ฅ๋ฐ์ ์๊ฐ sum๋ณด๋ค ํด ๋๊น์ง while๋ฌธ์ ๋๋ฆฐ๋ค.
์ํ ๊ณต์์ ์ฐพ์๋ ๋์ ์ ํด์ ์ปดํจํฐ๊ฐ ์์๋จน๊ฒ ์ ์ค๋ช ํด์ผ ํ๋ค. ์๊พธ๋ง ์ต์ํ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ ค๊ณ ํ๋ค ๐ค
๋ ์ฌ์ด ๊ธธ์ด ์์ผ๋ฉด ๋์๊ฐ๋๋ผ๋ ์ฌ์ด ๊ธธ์ ์ฐพ์๊ฐ ๋ณด์.
'Algorithms > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ๋ฐฑ์ค 2108๋ฒ : ํต๊ณํ (0) | 2022.05.13 |
---|---|
[JS] ๋ฐฑ์ค 2750๋ฒ : ์ ์ ๋ ฌํ๊ธฐ (0) | 2022.05.09 |
[JS] ๋ฐฑ์ค 1712๋ฒ : ์์ต๋ถ๊ธฐ์ (0) | 2022.05.05 |
[JS] ๋ฐฑ์ค 2908๋ฒ : ์์ (0) | 2022.05.04 |
[JS] ๋ฐฑ์ค 2675๋ฒ : ๋ฌธ์์ด ๋ฐ๋ณต (0) | 2022.04.26 |