โญ๏ธ ์๊ณ ๋ฆฌ์ฆ(1) : ์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ _ Lv.1 โญ๏ธ
01. ๋ฌธ์ ์ค๋ช
๐งฉ ์์ฐ์ n์ ๋ค์ง์ด ๊ฐ ์๋ฆฌ ์ซ์๋ฅผ ์์๋ก ๊ฐ์ง๋ ๋ฐฐ์ด ํํ๋ก ๋ฆฌํดํด์ฃผ์ธ์.
๐งฉ ์๋ฅผ ๋ค์ด, n์ด 12345์ด๋ฉด [5, 4, 3, 2, 1] ์ ๋ฆฌํดํฉ๋๋ค.
๐ ์ ํ ์กฐ๊ฑด : n์ 10,000,000,000 ์ดํ์ธ ์์ฐ์์
๋๋ค.
02. " solution.js " ๋ฌธ์ ํ์ด๋ณด๊ธฐ
๐ก ๋ฌธ์์ด 12345๋ฅผ ํ๋์ฉ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ฃผ๊ณ ์ซ์๋ก ๋ง๋ค์ด์ค ๋ค์, ์์๋ฅผ ๋ค์ง์ด์ฃผ์.
const flip = [12345];
function solution(n) {
return String(n).split('').map( (x) => Number(x) ).reverse();
}
console.log(solution(flip))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 String( ) : ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ๋ฐํํฉ๋๋ค.
`2 String.prototype.split( ) : ๋ถํ ๊ธฐ์ค์ ๋ฐ๋ผ ๋ฌธ์์ด์ ๋ถํ ํ์ฌ ๋ฐฐ์ด๋ก ๋ฐํํฉ๋๋ค.
`3 Array.prototype.map( ) : ๋ฐฐ์ด ๋ด์ ๋ชจ๋ ์์ ๊ฐ๊ฐ์ ๋ํด, ์ฃผ์ด์ง ํจ์๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
`4 Number( ) : ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ์ฌ ๋ฐํํฉ๋๋ค.
03. ๋ค๋ฅธ ํ์ด ์์๋ณด๊ธฐ
# 1) do while๋ฌธ๊ณผ push( ), Math.floor( ) ํ์ฉํ๊ธฐ
const flip = [12345];
function solution(n) {
let arr = [];
do {
arr.push( n % 10 );
n = Math.floor( n / 10 );
} while ( n > 0 );
return arr;
}
console.log(solution(flip))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 do ... while ๋ฌธ : ํ
์คํธ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ๋ก ํ๊ฐ๋ ๋๊น์ง ์ง์ ๋ ๊ตฌ๋ฌธ์ ์คํํ๋ ๋ฃจํ๋ฅผ ๋ง๋ญ๋๋ค.
๊ตฌ๋ฌธ์ด ์คํ๋ ๋ค์ ํ
์คํธ ์กฐ๊ฑด์ด ํ๊ฐ๋จ์ผ๋ก ๊ตฌ๋ฌธ์ ๋ฌด์กฐ๊ฑด ํ ๋ฒ์ ์คํ๋ฉ๋๋ค.
`2 Array.prototype.push( ) : ๋ฐฐ์ด์ ๋ง์ง๋ง์ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ ํ, ๋ณ๊ฒฝ๋ ๋ฐฐ์ด์ ๊ธธ์ด(๋ฐฐ์ด์ ์)๋ฅผ ๋ฐํํฉ๋๋ค.
`3 Math.floor( ) : ์ฃผ์ด์ง ์ซ์์ ๊ฐ๊ฑฐ๋ ์์ ์ ์ ์ค์์ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฐํํฉ๋๋ค. โ ๋ด๋ฆผ
# 2) for๋ฌธ๊ณผ push( ) ํ์ฉํ๊ธฐ
const flip = [12345];
function solution(n) {
let answer = [];
n = n + "";
for (let i = n.length - 1; i >= 0; i--) {
answer.push(Number( n[i] ));
}
return answer;
}
console.log(solution(flip))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 for๋ฌธ : ๊ดํธ ์์ ์์ ๋ฐ๋ณต ์คํํฉ๋๋ค.
# 3) split( )๊ณผ reverse( ), map( )์ ํ์ฉํ ๋ ๋ค๋ฅธ ํ์ด
const flip = [12345];
function solution(n) {
return ( n + "" ).split("").reverse().map( $ => +$ );
}
console.log(solution(flip))
# 4) while๋ฌธ๊ณผ parseInt( ), substr( ) ํ์ฉํ๊ธฐ
const flip = [12345];
function solution(n) {
let answer = [];
let cnt = 0;
n += '';
while( cnt < n.length ) {
cnt++
answer.push( parseInt( n.substr( n.length - cnt, 1 )));
}
return answer;
}
console.log(solution(flip))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 while๋ฌธ : ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ ๋ ์คํ๋๋ ๋ฐ๋ณต๋ฌธ์
๋๋ค.
๋ฐ๋ณต ์์ ์ ์ ์กฐ๊ฑด๋ฌธ์ด ์ฐธ, ๊ฑฐ์ง์ ํ๋จ๋ฐ์ผ๋ฏ๋ก, ์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ, ๋ฌธ์ฅ์ while ๋ฐ๋ณต๋ฌธ ํ๋ก ๊ทธ๋ฅ ๋์ด๊ฐ๋๋ค.
`2 parseInt( ) : ๋ฌธ์์ด ์ธ์๋ฅผ ์ซ์๋ก ๋ณ๊ฒฝํ์ฌ ๋ฐํํฉ๋๋ค. Number( )์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ฉฐ,
์ฐจ์ด์ ์ ์ดํด๋ณด์๋ฉด Number( )์ ๋ฌธ์์ด์ ์ซ์๊ฐ ์๋ ๋ฌธ์๊ฐ ์์ ๊ฒฝ์ฐ ๋ฌด์กฐ๊ฑด NaN ๊ฐ์ด ์ ์ฅ๋๊ณ
parseInt( )๋ ๋ฌธ์์ด์ด ์ซ์๋ก ์์ํ๊ณ ๋ฌธ์๊ฐ ๊ปด์์ ๊ฒฝ์ฐ ๋ฌธ์ ์ ๊น์ง๋ง ์ซ์๋ก ํ๋ณํ ํ ์ ์ฅ๋๋ค๋ ๊ฒ.
`3 String.prototype.substr( ) : ์์ ์์น๋ถํฐ ๊ธธ์ด๊ฐ ๋งํผ์ ๋ฌธ์์ด์ ์ถ์ถํ์ฌ ๋ฐํํฉ๋๋ค. โ ์น ํ์ค์์ ์์ด์ก์ผ๋ ์์ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
'Algorithm_JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๊ณ ๋ฆฌ์ฆ(6) : ๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ _ Lv.1 (2) | 2022.11.02 |
---|---|
์๊ณ ๋ฆฌ์ฆ(5) : ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์? _ Lv.1 (1) | 2022.10.31 |
์๊ณ ๋ฆฌ์ฆ(4) : ์ง์์ ํ์ _ Lv.1 (1) | 2022.10.31 |
์๊ณ ๋ฆฌ์ฆ(3) : ํ๊ท ๊ตฌํ๊ธฐ _ Lv.1 (2) | 2022.10.31 |
์๊ณ ๋ฆฌ์ฆ(2) : ์ ์ผ ์์ ์ ์ ๊ฑฐํ๊ธฐ _ Lv.1 (1) | 2022.10.31 |
๋๊ธ