๋ฐ์ํ
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
๋ฐ์ํ
'Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/JS] ์ฃผ์ฌ์์ ๊ฐ์ (0) | 2023.10.19 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/JS] ๊ฐ๋ฏธ ๊ตฐ๋จ โ (0) | 2023.10.19 |
[ํ๋ก๊ทธ๋๋จธ์ค/JS] ํผ์ ๋๋ ๋จน๊ธฐ (3) (1) | 2023.10.17 |
[ํ๋ก๊ทธ๋๋จธ์ค/JS] ์ ์ ์์น ๊ตฌํ๊ธฐ (0) | 2023.10.17 |
[ํ๋ก๊ทธ๋๋จธ์ค/JS] ์ค์๊ฐ ๊ตฌํ๊ธฐ (1) | 2023.10.17 |