Problem Solution/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ๋ฐฐ์—ด ๋‘๋ฐฐ ๋งŒ๋“ค๊ธฐ

yuri lee 2023. 9. 5. 20:31
๋ฐ˜์‘ํ˜•

Problem Description

์ •์ˆ˜ ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. numbers์˜ ๊ฐ ์›์†Œ์— ๋‘๋ฐฐํ•œ ์›์†Œ๋ฅผ ๊ฐ€์ง„ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

Restrictions

  • -10,000 ≤ numbers์˜ ์›์†Œ ≤ 10,000
    1 ≤ numbers์˜ ๊ธธ์ด ≤ 1,000

 

Input/Output Example

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1 [1, 2, 3, 4, 5]์˜ ๊ฐ ์›์†Œ์— ๋‘๋ฐฐ๋ฅผ ํ•œ ๋ฐฐ์—ด [2, 4, 6, 8, 10]์„ returnํ•ฉ๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #2 [1, 2, 100, -99, 1, 2, 3]์˜ ๊ฐ ์›์†Œ์— ๋‘๋ฐฐ๋ฅผ ํ•œ ๋ฐฐ์—ด [2, 4, 200, -198, 2, 4, 6]์„ returnํ•ฉ๋‹ˆ๋‹ค.

 

My solution

function solution(numbers) {
    return numbers.map((x) => x * 2)
}

 

Another solutions

function solution(numbers) {
    return numbers.reduce((a, b) => [...a, b * 2], []);
}

reduce ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ numbers ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. reduce ๋ฉ”์„œ๋“œ์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋Š” ๋ฆฌ๋“€์„œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋‘ ๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.

a: ๋ˆ„์ ๋œ ๊ฒฐ๊ณผ ๋ฐฐ์—ด / b: ํ˜„์žฌ ์ˆœํšŒ ์ค‘์ธ ๋ฐฐ์—ด์˜ ์š”์†Œ
๋ฆฌ๋“€์„œ ํ•จ์ˆ˜๋Š” ํ˜„์žฌ ์š”์†Œ b๋ฅผ b * 2๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ๋ˆ„์ ๋œ ๊ฒฐ๊ณผ ๋ฐฐ์—ด a์— ์ƒˆ๋กœ์šด ์š”์†Œ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž ([...a, b * 2])๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๋นˆ ๋ฐฐ์—ด []์„ ์ œ๊ณตํ•˜์˜€์œผ๋ฏ€๋กœ reduce ๋ฉ”์„œ๋“œ๋Š” ๋นˆ ๋ฐฐ์—ด์„ ์ดˆ๊ธฐ ๋ˆ„์  ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


https://school.programmers.co.kr/learn/courses/30/lessons/120809

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 
๋ฐ˜์‘ํ˜•