Problem Solution/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ์ˆœ์„œ์Œ์˜ ๊ฐœ์ˆ˜

yuri lee 2023. 10. 17. 22:51
๋ฐ˜์‘ํ˜•

Problem Description

์ˆœ์„œ์Œ์ด๋ž€ ๋‘ ๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ˆœ์„œ๋ฅผ ์ •ํ•˜์—ฌ ์ง์ง€์–ด ๋‚˜ํƒ€๋‚ธ ์Œ์œผ๋กœ (a, b)๋กœ ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ๋‘ ์ˆซ์ž์˜ ๊ณฑ์ด n์ธ ์ž์—ฐ์ˆ˜ ์ˆœ์„œ์Œ์˜ ๊ฐœ์ˆ˜๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

Restrictions.

  • 1 ≤ n ≤ 1,000,000

 

Input/Output Example

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1 n์ด 20 ์ด๋ฏ€๋กœ ๊ณฑ์ด 20์ธ ์ˆœ์„œ์Œ์€ (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) ์ด๋ฏ€๋กœ 6์„ returnํ•ฉ๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #2  n์ด 100 ์ด๋ฏ€๋กœ ๊ณฑ์ด 100์ธ ์ˆœ์„œ์Œ์€ (1, 100), (2, 50), (4, 25), (5, 20), (10, 10), (20, 5), (25, 4), (50, 2), (100, 1) ์ด๋ฏ€๋กœ 9๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

 

My solution

function solution(n) {
    const result = []
    
    for(let i = 1 ; i <= n ; i ++) {
        if(n%i === 0) result.push(i)
    }
    return result.length
}

 

Another solutions

function solution(n) {
      return Array(n).fill(1).map((v,idx) => v + idx).filter(v => n % v === 0).length
}

 

  • Array(n)์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธธ์ด๊ฐ€ n์ธ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฐ์—ด์€ 0๋ถ€ํ„ฐ n-1๊นŒ์ง€์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • fill(1)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ 1๋กœ ์ฑ„์›๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  ์š”์†Œ๊ฐ€ 1๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ฐฐ์—ด์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • map((v, idx) => v + idx)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ํ˜„์žฌ ๊ฐ’ v์™€ ํ•ด๋‹น ์š”์†Œ์˜ ์ธ๋ฑ์Šค idx๋ฅผ ๋”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋Š” ํ˜„์žฌ ์ธ๋ฑ์Šค ๊ฐ’์— 1์„ ๋”ํ•œ ๊ฐ’์œผ๋กœ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค.
  • filter(v => n % v === 0)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ์š”์†Œ ์ค‘์—์„œ n์„ ํ•ด๋‹น ์š”์†Œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๊ฐ’๋งŒ ๋‚จ๊น๋‹ˆ๋‹ค. ์ฆ‰, n์˜ ์•ฝ์ˆ˜๋งŒ์„ ๋‚จ๊ธฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. .length๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ž์—์„œ ๊ฑธ๋Ÿฌ์ง„ ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

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

 

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

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

programmers.co.kr

 

๋ฐ˜์‘ํ˜•