[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๋ฌธ ๋ฌธ์ ์ : ์์์์ ๊ฐ์
๋ฌธ์ ์ค๋ช
์์์์ด๋ ๋ ๊ฐ์ ์ซ์๋ฅผ ์์๋ฅผ ์ ํ์ฌ ์ง์ง์ด ๋ํ๋ธ ์์ผ๋ก (a, b)๋ก ํ๊ธฐํฉ๋๋ค. ์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ๋ ์ซ์์ ๊ณฑ์ด n์ธ ์์ฐ์ ์์์์ ๊ฐ์๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
1 โค n โค 1,000,000
์ ์ถ๋ ฅ ์
n | result |
---|---|
20 | 6 |
100 | 9 |
function solution(n) {
let answer = [];
for(let i = 1; i <= n; i++){
if(n % i === 0){
answer.push(i);
}
}
return answer.length;
}
์ ๊ทผ ๋ฐฉ๋ฒ
๋์
๋๋ n์ ์ซ์์ ์๋ก ๊ณฑ์ ํตํด ๋์ฌ ์ ์๋ ์์ ๊ด๊ณ๋ฅผ ๊ฐ๋ ์๋ฅผ ์ฐพ๋ ๊ฒ์ด๊ธฐ์ ๋ฐ๋ณต๋ฌธ์ ํตํด ์กฐ๊ฑด์ ๋ง๋(i๋ฅผ ํตํด ๋๋ n์ ๋๋จธ์ง ๊ฐ์ด 0์ด ๋๋) ๊ฐ์ ์ถ์ถํ๋ฉด ์์ด ๋๋ ์๋ฅผ ์ฐพ์ ์ ์๊ฒ ๋ค ์๊ฐํ๋ค.
๊ทธ๋ฆฌ๊ณ anwer์ ๋น ๋ฐฐ์ด์ ํด๋น ์๋ฅผ ํ๋์ฉ pushํ๊ณ ๋ฆฌํด ๋ ๋ฐฐ์ด์ length๋ฅผ ๋ฐํํ์ฌ ์์ ์ด ์๋ฅผ ๋์ถํ๋ค.
๋ฌธ์ ํ์ด #1
function solution(n) {
var answer = 0;
for(let i = 1; i <= n; i++){
if(n % i === 0) answer += 1;
}
return answer;
}
๊ฐ์ฅ ๋ณดํธ์ ์ด์๋ ๋ฌธ์ ํ์ด ๋ฐฉ๋ฒ ์ด์๋ ๊ฒ ๊ฐ๋ค.
๋ฌธ์ ํ์ด #2
function solution(n) {
return Array(n).fill(1).map((v,idx) => v + idx).filter(v => n % v === 0).length
}
fill()๊ณผ filter()๋ฉ์๋๋ฅผ ์ฌ์ฉํ ํ์ด ์์ธ๋ฐ ์ง๊ธ์ ๋น์ฅ ์ดํด๊ฐ ์ด๋ ค์ ํ์ ์ดํดํ๊ณ ์ถ์ด ๊ฐ์ ธ์๋ดค๋ค.
[ํ๋ก๊ทธ๋๋จธ์ค] Lv1 ๋ฌธ์ ์ : ํ๊ท ๊ตฌํ๊ธฐ
๋ฌธ์ ์ค๋ช
์ ์๋ฅผ ๋ด๊ณ ์๋ ๋ฐฐ์ด arr์ ํ๊ท ๊ฐ์ returnํ๋ ํจ์, solution์ ์์ฑํด๋ณด์ธ์.
์ ํ์ฌํญ
์ ์ถ๋ ฅ ์
arr | result |
---|---|
[1,2,3,4] | 2.5 |
[5,5] | 5 |
function solution(arr) {
var answer = 0
for(let sum of arr){
answer += sum
}
return answer/arr.length
}
์ ๊ทผ ๋ฐฉ๋ฒ
์ง๊ธ์ ๋ฌธ์ ์ญ์ ๋ณด์๋ง์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค ์ดํฉ์ ๊ตฌํด์ผ ํ๊ธฐ์ for of ๋ฐ๋ณต๋ฌธ์ ํตํด ํด๋น ๋ฐฐ์ด์ ์์๋ฅผ ๋์ answer์๋ค ๋์ฐ ๋ sum์ ํ ๋นํ๋ค.
๋ง์ง๋ง์ผ๋ก ํ๊ท ๊ฐ์ ๊ตฌํด์ผํ์ผ๋ฏ๋ก ๋ฆฌํด answer์ ๋ฐฐ์ด์ ๊ธธ์ด ๋งํผ ๋๋์ด ์คฌ๋ค.
function average(array){
return array.reduce((a,b) => a+b) / array.length;
}
reduce๋ฅผ ์ ์ฉํ์ฌ ๋ฐ๋ก ๋์ฐ๋ ๊ฐ์ ๋๋๋ ๋ฐฉ๋ฒ๋ ์์๋๋ฐ,, ์ ์๊ฐ๋์ง ์์์๊น
[ํ๋ก๊ทธ๋๋จธ์ค] Lv1 ๋ฌธ์ ์ : ์๋ฆฟ์ ๋ํ๊ธฐ
๋ฌธ์ ์ค๋ช
์์ฐ์ N์ด ์ฃผ์ด์ง๋ฉด, N์ ๊ฐ ์๋ฆฟ์์ ํฉ์ ๊ตฌํด์ return ํ๋ solution ํจ์๋ฅผ ๋ง๋ค์ด ์ฃผ์ธ์.
์๋ฅผ๋ค์ด N = 123์ด๋ฉด 1 + 2 + 3 = 6์ return ํ๋ฉด ๋ฉ๋๋ค.
์ ํ์ฌํญ
N์ ๋ฒ์ : 100,000,000 ์ดํ์ ์์ฐ์
์ ์ถ๋ ฅ ์
N | answer |
---|---|
123 | 6 |
987 | 24 |
function solution(n) {
let answer = n.toString().split('').map(i => parseInt(i)).reduce((a, b) => a + b)
return answer;
}
์ ๊ทผ ๋ฐฉ๋ฒ
์์ ๋ฐฑ์ค ๋ฌธ์ ํ์ดํ ๋ ๋ฐฑ์ค์ ๋ฌธ์ ๋ถํฐ ์ ์ ํด์ผ ํ๊ธฐ์ ๊ทธ๋ ์ ์ ํด์ผํ๋ ๋ฐฉ๋ฒ๊ณผ ์ ์ฌํด์ ๊ธฐ์ต์ ๋ํ์ด ์ง๊ธ์ ์์ด ๋์ค๊ฒ ๋๋ค.
ํ์ด #1
function solution(n){
// ์ฌ์ด๋ฐฉ๋ฒ
return (n+"").split("").reduce((acc, curr) => acc + parseInt(curr), 0)
}
n์๋ค (" ")์ ๋ํด ๋ฌธ์์ด๋ก ๋ง๋ค๊ณ split()๋ฉ์๋๋ฅผ ์ ์ฉ.
์ฌ๊ธฐ์ ๋๋ reduce๋ฅผ ๊ทธ๋ฅ ์ ์ฉํ๋ฉด ๋ค์ 123 ๋ฌธ์๊ฐ ๋ฆฌํด๋์ด map์ผ๋ก ์ซ์๋ฅผ ํ๋ณํํ์ฌ ๊ฐ์ ๋ฆฌํด ํ๋๋ฐ, ์์ ๊ฐ์ด ๊ณ์ฐ ํ ๋ reduce์ ํ์ฌ์ ๊ฐ์ ์ซ์๋ก ํ๋ณํํ์ฌ ๊ณ์ฐํ๋ฉด ๋๊ฐ์ด ๋์ค๋๋ผ,,