whatisthis?
โโ ๋ฐฑ์ค 1110 javascript (node.js) ํ์ด ๋ณธ๋ฌธ
โโ ๋ฐฑ์ค 1110 javascript (node.js) ํ์ด
thisisyjin 2021. 12. 20. 15:00while๋ฌธ - (3)
๐ก๋ฌธ์
0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 99๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์๊ฐ ์ฃผ์ด์ง ๋ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ์ ํ ์ ์๋ค. ๋จผ์ ์ฃผ์ด์ง ์๊ฐ 10๋ณด๋ค ์๋ค๋ฉด ์์ 0์ ๋ถ์ฌ ๋ ์๋ฆฌ ์๋ก ๋ง๋ค๊ณ , ๊ฐ ์๋ฆฌ์ ์ซ์๋ฅผ ๋ํ๋ค. ๊ทธ ๋ค์, ์ฃผ์ด์ง ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์์ ์์์ ๊ตฌํ ํฉ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์๋ฅผ ์ด์ด ๋ถ์ด๋ฉด ์๋ก์ด ์๋ฅผ ๋ง๋ค ์ ์๋ค. ๋ค์ ์๋ฅผ ๋ณด์.
26๋ถํฐ ์์ํ๋ค. 2+6 = 8์ด๋ค. ์๋ก์ด ์๋ 68์ด๋ค. 6+8 = 14์ด๋ค. ์๋ก์ด ์๋ 84์ด๋ค. 8+4 = 12์ด๋ค. ์๋ก์ด ์๋ 42์ด๋ค. 4+2 = 6์ด๋ค. ์๋ก์ด ์๋ 26์ด๋ค.
์์ ์๋ 4๋ฒ๋ง์ ์๋ ์๋ก ๋์์ฌ ์ ์๋ค. ๋ฐ๋ผ์ 26์ ์ฌ์ดํด์ ๊ธธ์ด๋ 4์ด๋ค.
N์ด ์ฃผ์ด์ก์ ๋, N์ ์ฌ์ดํด์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐์ ๋ ฅ
์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. N์ 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 99๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค.
๐์ถ๋ ฅ
์ฒซ์งธ ์ค์ N์ ์ฌ์ดํด ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ
26
์์ ์ถ๋ ฅ
4
2+6 = 8 ---> 68
6+8 = 14 ---> 84
8+4 = 12 ---> 42
4+2 = 6 ---> 26
< ์ฝ๋ >
let input = Number(require('fs').readFileSync('/dev/stdin').toString());
let num = input;
let sum;
let i = 0;
while (true) {
i++;
sum = Math.floor(num / 10) + num % 10;
num = (num % 10) * 10 + sum % 10;
if (input === num) {
break;
}
}
console.log(i);
input์ Number()์์ ๋ฃ๊ณ , ๊ทธ๊ฒ์ input์ด๋ผ๋ ๋ณ์๋ก ์ ์ฅํ๊ณ , num = input ์ผ๋ก ์ง์ ํด์ค๋ค.
while(true) - if - break ๋ฌธ์ ์ฌ์ฉํด์
์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด while๋ฌธ์ ๋ฒ์ด๋๋๋ก ํ๋ค.
i=0์์ i++๋ฅผ ๋จผ์ ํด์ฃผ๊ณ (์นด์ดํธ)
sum = ์ญ์์๋ฆฌ + ์ผ์์๋ฆฌ ์ด๋ฏ๋ก
์ญ์์๋ฆฌ = floor(num/10)
์ผ์์๋ฆฌ = num % 10
num์ (์ฆ, ์๋ก ๊ฐฑ์ ๋ num๊ฐ) ์ผ์์๋ฆฌ * 10 + sum์ ์ผ์์๋ฆฌ ์ด๊ณ ,
input === num์ด ๋๋ฉด break๋ก while์ ๋น ์ ธ๋์จ๋ค.
โ ํ๋ ธ๋ ์ฝ๋๋ค
#1. Reference Error
let input = require('fs').readFileSync('/dev/stdin').toString();
let num = Number(input);
let sum;
let cnt = 0;
while(True){
cnt++;
sum = Math.floor(num/10) + num%10; // ์ญ์์๋ฆฌ + ์ผ์์๋ฆฌ
num = (num%10)*10 + sum%10;
if(num === input) break;
}
console.log(cnt);
#2. Syntax Error
let input = Number(require('fs').readFileSync('/dev/stdin').toString());
let num = input;
let sum;
let cnt = 0;
while(True){
cnt++;
sum = Math.floor(num / 10) + num % 10;
num = (num % 10) * 10 + sum % 10;
if(input === num) {
break;
}
console.log(cnt);
'ALGORITHM > BOJ (Node.js)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 2562 javascript (node.js) ํ์ด (0) | 2022.01.04 |
---|---|
๋ฐฑ์ค 10818 javascript (node.js) ํ์ด (0) | 2022.01.04 |
๋ฐฑ์ค 10951 javascript (node.js) ํ์ด (0) | 2021.12.20 |
๋ฐฑ์ค 10952 javascript (node.js) ํ์ด (0) | 2021.12.13 |
โ๋ฐฑ์ค 10871 javascript (node.js) ํ์ด (0) | 2021.12.13 |