🟣 였늘의 문제 회고

κΉ€νƒœμš±Β·2023λ…„ 3μ›” 18일
0
post-thumbnail

🀩🀩🀩 였늘의 문제 ν•₯짝 #1


[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] Lv1 문제의 : μ•½μˆ˜μ˜ ν•©

문제 μ„€λͺ…
μ •μˆ˜ n을 μž…λ ₯λ°›μ•„ n의 μ•½μˆ˜λ₯Ό λͺ¨λ‘ λ”ν•œ 값을 λ¦¬ν„΄ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­
n은 0 이상 3000μ΄ν•˜μΈ μ •μˆ˜μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

nreturn
1228
56

λ‚˜μ˜ 풀이

function solution(n){
    var answer = []
    for(let i=1; i<=n; i++){
        if(n%i ===0) answer.push(i)
    }
    return answer.reduce((a,b) => a+b)
}

μ ‘κ·Ό 방법
μ–Όλ§ˆ 전에 문제 ν’€μ΄ν–ˆλ˜ μˆœμ„œμŒμ˜ 합을 κ΅¬ν•˜λŠ” λ°©μ‹μ—μ„œ 리턴 κ°’λ§Œ 더해주면 λ˜λŠ” λ¬Έμ œμ˜€μ–΄μ„œ 크게 어렀움이 μ—†μ—ˆλ‹€.

🀯 κ·ΈλŸ¬λ‚˜ μ΅œμ’…μ œμΆœμ—μ„œ λŸ°νƒ€μž„ μ—λŸ¬κ°€ λ‚˜λŠ” 것이 μ•„λ‹Œκ°€! 🀯
μ™œμ§€,, ν•˜λ©° λ‹€λ₯Έ μ΄λ“€μ˜ 풀이λ₯Ό μ‚΄νŽ΄λ³΄λ €λ‹€ μ±— gptλ₯Ό μ΄μš©ν•΄ μ§€κΈˆμ˜ μ½”λ“œ λ¬Έμ œμ μ— λŒ€ν•΄ μ•Œλ €λ‹¬λΌκ³  질문 ν•΄λ³΄μ•˜λ‹€.

문제점의 μ΄μœ μ™€ λ™μ‹œμ— μ–΄λ–»κ²Œ ν•΄κ²°ν•˜λ©΄ 될지에 λŒ€ν•œ μ½”λ“œλΆ„μ„μ„ 닡변을 λ°›κ²Œ 됐닀.

μ • λͺ¨λ₯΄κ² λ‹€ μ‹ΆμœΌλ©΄ λ‹€λ₯Έ μ‚¬λžŒλ“€μ˜ 풀이λ₯Ό λ°”λ‘œ μ°Ύμ•„λ³΄λŠ” 것 λ³΄λ‹€λŠ” λ‚˜μ˜ μ½”λ“œμ—λŠ” μ–΄λ–€ λ¬Έμ œκ°€ 있고 μ–΄λ–»κ²Œ λ¬Έμ œκ°€ μžˆλŠ”μ§€ λ°”λ‘œ νŒŒμ•…ν•  수 있게 gptν•œν…Œ λ¬Όμ–΄λ³΄λŠ” 것도 ν•˜λ‚˜μ˜ 방법이 될 수 μžˆμ„ 것 κ°™λ‹€.

후에 ν•΄λ‹Ή ꡬ체적으둜 μ•Œκ³ μ‹Άκ±°λ‚˜ 이해가 λΆ€μ‘±ν•œ 뢀뢄을 κ΅¬κΈ€μ—μ„œλ‚˜ κ³΅μ‹λ¬Έμ„œλ₯Ό ν™œμš©ν•΄ μ°Ύμ•„μ„œ λ³΄λŠ” 것이 λ‚΄ 것이 λ μˆ˜μžˆλŠ” ν•˜λ‚˜μ˜ 지름길 μ•„λ‹κΉŒ μƒκ°ν–ˆλ‹€!


🀩🀩🀩 였늘의 문제 ν•₯짝 #2

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] Lv1 x만큼 간격이 μžˆλŠ” n개의 숫자

문제 μ„€λͺ…
ν•¨μˆ˜ solution은 μ •μˆ˜ x와 μžμ—°μˆ˜ n을 μž…λ ₯ λ°›μ•„, xλΆ€ν„° μ‹œμž‘ν•΄ xμ”© μ¦κ°€ν•˜λŠ” 숫자λ₯Ό n개 μ§€λ‹ˆλŠ” 리슀트λ₯Ό 리턴해야 ν•©λ‹ˆλ‹€. λ‹€μŒ μ œν•œ 쑰건을 보고, 쑰건을 λ§Œμ‘±ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­
xλŠ” -10000000 이상, 10000000 μ΄ν•˜μΈ μ •μˆ˜μž…λ‹ˆλ‹€.
n은 1000 μ΄ν•˜μΈ μžμ—°μˆ˜μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

xnreturn
25[2,4,6,8,10]
43[4,8,12]
-42[-4, -8]

λ‚˜μ˜ 풀이

function solution(x, n) {
    var answer = [];
    for(let i=1; i<=n; i++){
     answer.push(x*i)
    }
    return answer
}

μ ‘κ·Ό 방법
문제 μ„€λͺ…에 ν•„μš”ν•œ 계산듀을 ν•˜λ‚˜μ”© λ‚˜μ—΄ν•˜μ—¬ κΈ€λ‘œ ν’€μ–΄λ³΄μ•˜λ‹€.
1. n개 만큼 λ°˜λ³΅ν•΄μ„œ xλΆ€ν„° μ‹œμž‘ν•΄ xμ”© μ¦κ°€ν•˜λŠ” 숫자.
2. μ¦κ°€λœ 숫자의 배열을 λ°˜ν™˜.

1번 ν’€μ΄μ—μ„œ 봀듯이 n만큼 λ°˜λ³΅μ„ ν•΄μ•Όν–ˆκΈ°μ— λ°˜λ³΅λ¬Έμ„ μž‘μ„±.
for 블둝 μ•ˆμ— x만큼 증가λ₯Ό ν•˜κΈ° μœ„ν•΄ λŠ˜μ–΄λ‚˜λŠ” i만큼 κ³±ν•΄μ£Όμ—ˆμœΌλ©°

2번 ν’€μ΄μ—μ„œ λ°°μ—΄λ‘œ λ°˜ν™˜ν•΄μ•Ό ν–ˆκΈ°μ— λ„λŠ” 숫자만큼 push ν•΄μ£Όμ—ˆλ‹€.


λ‹€λ₯Έ μ‚¬λžŒ 풀이

function solution(x, n) {
    return Array(n).fill(x).map((v, i) => (i + 1) * v)
}

Array( )μƒμ„±μžλ‘œ 인해 n만큼의 λΉˆλ°°μ—΄μ„ μƒμ„±ν•˜κ³ ,
fill λ©”μ„œλ“œλ‘œ μΈν•΄μ„œ ν•΄λ‹Ή λ°°μ—΄μ˜ μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό μΈλ±μŠ€λ³„λ‘œ x값을 μ£Όκ³ .
map λ©”μ„œλ“œλ₯Ό 톡해 (value, index)λ₯Ό λŒμ•„ κ³±ν•œ 값을 λ¦¬ν„΄ν•œ 식이 μΈμƒκΉŠμ—ˆλ‹€.


🀩🀩🀩 였늘의 문제 ν•₯짝 #3

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] Lv1 μžμ—°μˆ˜ 뒀집어 λ°°μ—΄λ‘œ λ§Œλ“€κΈ°

문제 μ„€λͺ…
μžμ—°μˆ˜ n을 뒀집어 각 자리 숫자λ₯Ό μ›μ†Œλ‘œ κ°€μ§€λŠ” λ°°μ—΄ ν˜•νƒœλ‘œ λ¦¬ν„΄ν•΄μ£Όμ„Έμš”. 예λ₯Όλ“€μ–΄ n이 12345이면 [5,4,3,2,1]을 λ¦¬ν„΄ν•©λ‹ˆλ‹€.

μ œν•œμ‚¬ν•­
n은 10,000,000,000μ΄ν•˜μΈ μžμ—°μˆ˜μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

nreturn
12345[5,4,3,2,1]

λ‚˜μ˜ 풀이

function solution(n) {
    var answer = n.toString().split('').map(e => parseInt(e))

    
    return answer.reverse()
}

μ ‘κ·Ό 방법
1. ν•΄λ‹Ή μž…λ ₯ λ°›λŠ” 숫자λ₯Ό κ°œλ³„λ‘œ λ‚˜λˆ μ€¬μ–΄μ•Ό ν–ˆκΈ°μ— split( )λ©”μ†Œλ“œκ°€ ν•„μš”ν•΄ λ³΄μ˜€λ‹€.
2. toString( )λ©”μ†Œλ“œλ‘œ λ¬Έμžμ—΄λ‘œ λ³€ν˜• ν›„ split('') λ©”μ†Œλ“œλ‘œ 병합 ν•΄μ œ
3. λ°°μ—΄ μ•ˆμ˜ λ‚΄μš©μ€ λ¬Έμžμ—΄μ΄λ‹ˆ map( )λ©”μ„œλ“œλ₯Ό 톡해 각 elementλ₯Ό μˆ«μžν˜•μœΌλ‘œ λ³€ν˜•
4. return 배열을 reverse( )둜 λ’€μ§‘μ–΄μ£Όμ—ˆλ‹€.


λ‹€λ₯Έ μ‚¬λžŒ 풀이
μ΄λ²ˆμ—λŠ” 문제점 λŒ€μ‹  κ°œμ„ μ μ„ λ¬Όμ–΄λ³΄μ•˜λ‹€.

gpt λ‹΅λ³€μ˜ 2번째 λ‹¨λ½μ—μ„œ μž…λ ₯ 받은 μžμ—°μˆ˜ n의 크기가 컀지면 λ¬Έμžμ—΄λ‘œ μ²˜λ¦¬μ— λ”°λ₯Έ μ„±λŠ₯ λ¬Έμ œλŠ” 숫자 νƒ€μž…λ³΄λ‹€ λ¬Έμžμ—΄λ‘œ λ³€ν™˜μ‹œ λ©”λͺ¨λ¦¬μ— λ“€μ–΄κ°€λŠ” μš©λŸ‰μ˜ 크기가 컀지기 λ•Œλ¬ΈμΈ 것 κ°™μ•˜κ³ , 그렇기에 μˆ«μžνƒ€μž… κ·ΈλŒ€λ‘œ 배열에 각 자리수 λ§ˆλ‹€ μž…λ ₯을 λ„£κΈ° μœ„ν•œ 식을 λ§Œλ“€μ–΄ μ£Όμ—ˆλ‹€.

μœ„ 식 풀이
1. λ°°μ—΄λ‘œ λ°˜ν™˜ λ°›μ•„μ•Ό ν•  빈 λ°°μ—΄ answer 생성
2. while 쑰건의 좩쑱될 λ•ŒκΉŒμ§€ 반볡
3. μžμ—°μˆ˜ n을 10으둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€ 값을 λ¨Όμ € answer에 push
4. n을 10으둜 λ‚˜λˆ„μ–΄ μ†Œμˆ˜λ‘œ 남은 값을 버림.
5. λ‹€μ‹œ while 반볡

profile
방법을 연ꡬ할 쀄 μ•„λŠ” 개발자!

0개의 λŒ“κΈ€