๐Ÿ‘ฉ‍๐Ÿ’ป/JavaScript

[Programmers] JavaScript, 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ (toString(), parseInt(), reduce())

ํ•œ๋‚˜ 2021. 3. 3. 01:57


programmers.co.kr/learn/challenges

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต

๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

programmers.co.kr

๋ฌธ์ œ

์ž์—ฐ์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ, n์„ 3์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๊ณ , ์ด๋ฅผ ์•ž๋’ค๋กœ ๋’ค์ง‘๋Š”๋‹ค. ์ด๋ฅผ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

์ฝ”๋“œ

 

ํ’€์ด

10์ง„๋ฒ•์„ 2์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋กœ์ง๊ณผ ๋™์ผํ•˜๋‹ค. 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๋Œ€์‹  3์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ num์— ๋‹ด๋Š” ์‹์ด๋‹ค. n์ด 3๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•ด num += n์„ ์žŠ์ง€ ๋ง๊ณ  ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. 10์ง„๋ฒ•์„ 3์ง„๋ฒ•์œผ๋กœ๋งŒ ๋ฐ”๊พธ๋Š” ๋ฐ ๊ทธ์น˜์ง€ ์•Š๊ณ  ์ด๋ฅผ ๋’ค์ง‘๊ธฐ ๋•Œ๋ฌธ์— ์œ„ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ผ๋‹ค.

 

parseInt()๋Š” ๋ฌธ์ž์—ด ์ธ์ž๋ฅผ ๊ตฌ๋ฌธ๋ถ„์„ํ•ด ํŠน์ • ์ง„์ˆ˜์˜ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ธ์ž๊ฐ€ ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๋’ค์ง‘ํžŒ 3์ง„๋ฒ•์€ ๋ฌธ์ž์—ด์ด๊ณ , ์ด๋ฅผ 3์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊ฟ” return ํ•ด์ค€๋‹ค.

๋‹ค๋ฅธ ํ’€์ด 2

solution2(n)๋Š” ์œ„์˜ ํ’€์ด์—์„œ ์‚ฌ์šฉํ•œ parseInt์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๊ฐ€ ๋ฌธ์ž์—ด์ž„์„ ์ด์šฉํ•˜๋Š” ํ’€์ด์ด๋‹ค. toString() ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • Number ๊ฐ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

numObj.toString([radix])
  • radix : ์ง„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ์ˆ˜์˜ ๊ฐ’
  • ์˜ˆ์™ธ : ๋งŒ์ผ toString()์— 2 ~ 36 ์‚ฌ์ด ๊ฐ’์ด ์•„๋‹Œ radix๊ฐ€ ์ฃผ์–ด์ง€๋ฉด RangeError๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.

45๋ฅผ 3์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋ฉด ์œ„์ฒ˜๋Ÿผ ๊ฒฐ๊ณผ๋ฅผ ๋‚ธ๋‹ค. ์ด๋ฅผ spread operator๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ดํ™”ํ•˜๊ณ , reverse() ๋ฉ”์„œ๋“œ๋กœ ๋’ค์ง‘๊ณ , join์œผ๋กœ ๋‹ค์‹œ ๋ฌธ์ž์—ดํ™”ํ•œ๋‹ค. parseInt์˜ ๋‘ ๋ฒˆ์งธ ์ธ์ž์— 3๋ฅผ ๋„ฃ์–ด ๋งˆ์ง€๋ง‰์œผ๋กœ 3์ง„๋ฒ•์œผ๋กœ ๋งˆ๋ฌด๋ฆฌํ•œ๋‹ค.

๋‹ค๋ฅธ ํ’€์ด 3

์ฒซ ๋ฒˆ์งธ ํ’€์ด์—์„œ while ๋ฌธ์„ ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ, ๋‚ด์žฅ ํ•จ์ˆ˜ parseInt๋กœ ๋งˆ๋ฌด๋ฆฌํ•˜๋Š” ๋Œ€์‹  reduce ํ•จ์ˆ˜๋กœ ์ง์ ‘ 3์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๋Š” ํ’€์ด์ด๋‹ค. ๋ˆ„์ ํ•ด์„œ ๋”ํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ์ธ reduce๋Š” acc ์ธ์ž๋กœ ์ด์ „ ๊ฐ’์„, v๋กœ ํ˜„์žฌ์˜ value๋ฅผ, i๋กœ ํ˜„์žฌ ๊ฐ’์˜ index๋ฅผ ๋ฐ›๊ณ  ์žˆ๋‹ค.

 

reduce๋Š” ์ •๋ง ์‚ฌ์šฉํ•˜๊ธฐ ๋‚˜๋ฆ„์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ๐Ÿ‘€๐Ÿ‘€

์ฐธ๊ณ