Programmers Lv.1 : ์๋ฆฟ์ ๋ํ๊ธฐ
๋ฌธ์ : " ์์ฐ์ N์ด ์ฃผ์ด์ง๋ฉด, N์ ๊ฐ ์๋ฆฟ์์ ํฉ์ ๊ตฌํด์ return ํ๋ solution ํจ์๋ฅผ ๋ง๋ค์ด ์ฃผ์ธ์. ์๋ฅผ๋ค์ด N = 123์ด๋ฉด 1 + 2 + 3 = 6์ return ํ๋ฉด ๋ฉ๋๋ค. "
์กฐ๊ฑด : N์ ๋ฒ์ : 100,000,000 ์ดํ์ ์์ฐ์
๋ด ํ์ด
function solution(n){
let sum = 0;
let answer=String(n).split("");
for(let i=0; i<answer.length; i++){
let num = parseInt(answer[i]);
sum += num;
}
return sum;
}
solution(123);
01. n์ธ 123์ ๋จผ์ ํ ๊ฐ์ฉ์ผ๋ก ๋๋ ์ฃผ๊ธฐ ์ํด ๋ฌธ์์ด๋ก ๋ฐ๊ฟ split๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ํ ์๋ฆฟ ์๋ก ๋๋์ด ์ฃผ์์ต๋๋ค.
02. ํ ์๋ฆฟ ์๋ก ๋๋ answer๋ ["1", "2", "3"]์ด ์ํ์ด๋ฉฐ ์ธ๋ฑ์ค๋ณ ๊ฐ "1", "2", "3"์ 1,2,3๊ณผ ๊ฐ์ด ์ซ์๋ก ๋ณํํ๊ธฐ ์ํด parseInt()๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
03. ์ซ์๋ก ๋ฐ๋ ๊ฐ์ ์ดํฉ(sum)์ ๊ตฌํด sum์ ๋ฆฌํดํด์ฃผ๋ฉด ์๋ฆฟ์๋ฅผ ๋ํ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด
function solution(n){
// ์ฌ์ด๋ฐฉ๋ฒ
return (n+"").split("").reduce((acc, curr) => acc + parseInt(curr), 0)
}
reduce์ initial value๋ ์ฒซ acc ๊ฐ์
๋๋ค. ์ฆ, 0์ ๋ฃ์ด์ acc ์ด๊ธฐ๊ฐ์ ์ ์ํ ํด์ฃผ๋ ๊ฒ๋๋ค("๋ฌธ์์ด + ์ ์ = ๋ฌธ์์ด" ๋ฐฉ์ง์ฐจ์). initial value๋ฅผ ์ง์ ํ์ง ์๋๋ค๋ฉด parseInt(acc) + parseInt(curr)๋ก ํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
n+""์ ์ซ์ + ๋ฌธ์์ด์ ํํ์ด๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฌธ์์ด n์ ๋ฐํํฉ๋๋ค. = String(n)
'ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Programmers Lv.1 : ์ง์์ ํ์ (1) | 2022.11.03 |
---|---|
Programmers Lv.1 : ํ๊ท ๊ตฌํ๊ธฐ (2) | 2022.11.03 |
ํ๋ก๊ทธ๋๋จธ์ค Lv.1 "๋๋จธ์ง๊ฐ 1์ด ๋๋ ์ ์ฐพ๊ธฐ" (2) | 2022.11.03 |
ํ๋ก๊ทธ๋๋จธ์ค Lv.1 "์ฝ์์ ํฉ" (0) | 2022.11.02 |
ํ๋ก๊ทธ๋๋จธ์ค Lv.1 "์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ" (0) | 2022.11.02 |
๋๊ธ