๐ŸŸฃ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํšŒ๊ณ 

๊น€ํƒœ์šฑยท2023๋…„ 3์›” 17์ผ
0
post-thumbnail

๐Ÿค‘ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #1


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

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

์ œํ•œ์‚ฌํ•ญ
1 โ‰ค n โ‰ค 1,000,000

์ž…์ถœ๋ ฅ ์˜ˆ

nresult
206
1009

๋‚˜์˜ ํ’€์ด

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()๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด ์‹์ธ๋ฐ ์ง€๊ธˆ์€ ๋‹น์žฅ ์ดํ•ด๊ฐ€ ์–ด๋ ค์›Œ ํ›„์— ์ดํ•ดํ•˜๊ณ ์‹ถ์–ด ๊ฐ€์ ธ์™€๋ดค๋‹ค.


๐Ÿค‘ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #2

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1 ๋ฌธ์ œ์˜ : ํ‰๊ท  ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ ์„ค๋ช…
์ •์ˆ˜๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐฐ์—ด arr์˜ ํ‰๊ท ๊ฐ’์„ returnํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • arr์€ ๊ธธ์ด 1 ์ด์ƒ, 100 ์ดํ•˜์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • arr์˜ ์›์†Œ๋Š” -10,000 ์ด์ƒ 10,000 ์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

arrresult
[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๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ฐ”๋กœ ๋ˆ„์‚ฐ๋œ ๊ฐ’์„ ๋‚˜๋ˆ„๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์—ˆ๋Š”๋ฐ,, ์™œ ์ƒ๊ฐ๋‚˜์ง€ ์•Š์•˜์„๊นŒ


๐Ÿค‘ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #3

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1 ๋ฌธ์ œ์˜ : ์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ

๋ฌธ์ œ ์„ค๋ช…
์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง€๋ฉด, N์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•ด์„œ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”.
์˜ˆ๋ฅผ๋“ค์–ด N = 123์ด๋ฉด 1 + 2 + 3 = 6์„ return ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ
N์˜ ๋ฒ”์œ„ : 100,000,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜

์ž…์ถœ๋ ฅ ์˜ˆ

Nanswer
1236
98724

๋‚˜์˜ ํ’€์ด

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์— ํ˜„์žฌ์˜ ๊ฐ’์„ ์ˆซ์ž๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ ๊ณ„์‚ฐํ•˜๋ฉด ๋˜‘๊ฐ™์ด ๋‚˜์˜ค๋”๋ผ,,

profile
๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•  ์ค„ ์•„๋Š” ๊ฐœ๋ฐœ์ž!

0๊ฐœ์˜ ๋Œ“๊ธ€