๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1 "์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ"

by Youcodein 2022. 11. 2.
728x90
๋ฐ˜์‘ํ˜•

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)

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€