[μ•Œκ³ λ¦¬μ¦˜] πŸμ•Œκ³ λ¦¬μ¦˜ 곡뢀 μ‹œλ¦¬μ¦ˆμ˜ μ‹œμž‘κ³Ό 각였/ ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€-ν•΄μ‹œ-μœ„μž₯ 문제 풀이

BigChoiΒ·2022λ…„ 3μ›” 4일
0

μ•Œκ³ λ¦¬μ¦˜

λͺ©λ‘ 보기
1/4
post-thumbnail

πŸμ•Œκ³ λ¦¬μ¦˜ κ³΅λΆ€μ˜ μ‹œμž‘μ˜ 계기

λŒ€ν•™μ‘Έμ—… ν›„ μΈμƒμ˜ ν„°λ‹ν¬μΈνŠΈλΌκ³  ν•  수 μžˆλŠ” '개발자'λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ ‘ν•˜κ³  κ°œλ°œμ— μž…λ¬Έν•œμ§€ μ–΄λŠλ§ 1λ…„μ΄λΌλŠ” μ‹œκ°„μ΄ ν˜λ €λ‹€. 정말 운이 μ’‹κ²Œ 지방에 μœ„μΉ˜ν•œ μŠ€νƒ€νŠΈμ—…μ— ν•©λ₯˜ν•˜κ²Œ λ˜μ—ˆκ³ , μ§€λ‚œ 1년은 정말이지 λ‚˜μ—κ²Œ λ§Žμ€ 배움을 μ•ˆκ²¨μ€€ ν•œ ν•΄μ˜€λ‹€. κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³ , 벨둜그 ν˜Ήμ€ λ‹€λ₯Έ κ°œλ°œμžλΆ„λ“€μ„ λ³΄λ©΄μ„œ, 정말 아직 λ©€μ—ˆλ‹€λŠ” 것을 맀일맀일 κΉ¨λ‹«κ³ , '이런 μ‚¬λžŒλ“€κ³Ό λ‚΄κ°€ κ²½μŸμ„ ν•΄μ•Όν•˜λŠ”λ°, λ‚΄κ°€ λ§Œμ•½ 이직을 ν•˜κ²Œ λœλ‹€λ©΄, 이런 λŒ€λ‹¨ν•œ μ‚¬λžŒλ“€κ³Όμ˜ κ²½μŸμ—μ„œ 살아남을 수 μžˆμ„κΉŒ?'λΌλŠ” μ΄ˆμ‘°ν•¨μ„ κ°–κ³  μžˆλ‹€.

μ§€κΈˆμ˜ νšŒμ‚¬λ„ 정말 μ’‹κ³  만쑱슀러운 νšŒμ‚¬μ§€λ§Œ, λ‚˜μ˜ 컀리어λ₯Ό μœ„ν•΄μ„œλŠ” μ–Έμ  κ°€λŠ” μ§€κΈˆ νšŒμ‚¬μ™€ 이별할 μˆ˜λ°–μ— μ—†λ‹€κ³  생각이 λ“ λ‹€. λ¬Όλ‘  νšŒμ‚¬μ—μ„œλ„ μ—΄μ‹¬νžˆ κΈ°μ—¬ν•΄μ„œ νšŒμ‚¬λ₯Ό ν‚€μš°κ³  μ‹Άλ‹€λŠ” μš•μ‹¬μ€ μžˆμ§€λ§Œ, μŠ€μŠ€λ‘œκ°€ νšŒμ‚¬μ— μ’…μ†λœλ‹€λŠ” λŠλ‚Œμ„ κ°–κ³  싢지 μ•ŠκΈ° λ•Œλ¬Έμ— μ–Έμ œ μžˆμ„μ§€ λͺ¨λ₯Ό μ½”λ”©ν…ŒμŠ€νŠΈμ™€, ν˜„μ—…μ—μ„œλ„ 보닀 쒋은 μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄ μ•Œκ³ λ¦¬μ¦˜ 곡뢀λ₯Ό μ‹œμž‘ν•˜κ³ μž ν•œλ‹€!

πŸ“š 각였

κ°μ˜€λŠ” 항상 κ±°μ°½ν•˜λ©΄ κ±°μ°½ν•  수둝 ν¬κΈ°ν•˜κΈ° μ‰¬μš΄ 것 κ°™λ‹€!
일주일에 3문제! 더도말고 λœλ„λ§κ³  일주일에 3문제만 ν’€μž!!!πŸš€
문제λ₯Ό ν‘Ό λ’€ κ΄€λ ¨ μ•Œκ³ λ¦¬μ¦˜μ˜ 이둠을 ν‹ˆν‹ˆμ΄ ν•™μŠ΅ν•΄μ„œ μ •λ¦¬ν•˜μž!
κ·Έλ ‡κ²Œ 1년을 λ°˜λ³΅ν•˜λ‹€λ³΄λ©΄ λ‚˜μ˜ λΆˆμ•ˆν•¨κ³Ό μ΄ˆμ‘°ν•¨λ„ 사라지겠지

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - ν•΄μ‹œ - μœ„μž₯

문제 μ„€λͺ…

μŠ€νŒŒμ΄λ“€μ€ 맀일 λ‹€λ₯Έ μ˜·μ„ μ‘°ν•©ν•˜μ—¬ μž…μ–΄ μžμ‹ μ„ μœ„μž₯ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ μŠ€νŒŒμ΄κ°€ 가진 옷이 μ•„λž˜μ™€ κ°™κ³  였늘 μŠ€νŒŒμ΄κ°€ λ™κ·Έλž€ μ•ˆκ²½, κΈ΄ μ½”νŠΈ, νŒŒλž€μƒ‰ ν‹°μ…”μΈ λ₯Ό μž…μ—ˆλ‹€λ©΄ λ‹€μŒλ‚ μ€ 청바지λ₯Ό μΆ”κ°€λ‘œ μž…κ±°λ‚˜ λ™κ·Έλž€ μ•ˆκ²½ λŒ€μ‹  κ²€μ • μ„ κΈ€λΌμŠ€λ₯Ό μ°©μš©ν•˜κ±°λ‚˜ ν•΄μ•Ό ν•©λ‹ˆλ‹€.
μŠ€νŒŒμ΄κ°€ 가진 μ˜μƒλ“€μ΄ λ‹΄κΈ΄ 2차원 λ°°μ—΄ clothesκ°€ μ£Όμ–΄μ§ˆ λ•Œ μ„œλ‘œ λ‹€λ₯Έ 옷의 μ‘°ν•©μ˜ 수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­

  • clothes의 각 행은 [μ˜μƒμ˜ 이름, μ˜μƒμ˜ μ’…λ₯˜]둜 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
  • μŠ€νŒŒμ΄κ°€ 가진 μ˜μƒμ˜ μˆ˜λŠ” 1개 이상 30개 μ΄ν•˜μž…λ‹ˆλ‹€.
  • 같은 이름을 가진 μ˜μƒμ€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • clothes의 λͺ¨λ“  μ›μ†ŒλŠ” λ¬Έμžμ—΄λ‘œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
  • λͺ¨λ“  λ¬Έμžμ—΄μ˜ κΈΈμ΄λŠ” 1 이상 20 μ΄ν•˜μΈ μžμ—°μˆ˜μ΄κ³  μ•ŒνŒŒλ²³ μ†Œλ¬Έμž λ˜λŠ” '_' 둜만 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
  • μŠ€νŒŒμ΄λŠ” ν•˜λ£¨μ— μ΅œμ†Œ ν•œ 개의 μ˜μƒμ€ μž…μŠ΅λ‹ˆλ‹€.

λ‚˜μ˜ 풀이

function solution(clothes) {
    var answer = 1;
    const table = {}
    clothes.map(arr => {
        // ν‚€ μœ λ¬΄μ— 따라 쑰건 λΆ„κΈ°         
        if (Object.keys(table).includes(arr[1])) {
            table[arr[1]].push(arr[0])
        } else {
            table[arr[1]] = new Array();
            table[arr[1]].push(arr[0])
        }
    })
    
    for (const key in table) {
        answer *= (table[key].length + 1)
    }
    return answer - 1;
}

경우의 수 곡식을 ν™œμš©ν•΄μ„œ ν’€μ—ˆλ‹€.
A 2개, B 2개, C 2개, D 3κ°œκ°€ μžˆμ„ 경우
(A + 1)(B + 1)(C + 1)(D + 1)λ₯Ό ν•œ κ²°κ³Όκ°€ λͺ¨λ“  경우의 μˆ˜μ΄λ‹€.
ν•˜μ§€λ§Œ μ΅œμ†Œ ν•œ 개의 μ˜μƒμ€ μž…λŠ”λ‹€λŠ” μ œν•œμ΄ μžˆμ—ˆμœΌλ‹ˆ, λͺ¨λ“  경우의 μˆ˜μ—μ„œ 아무것도 μž…μ§€μ•ŠλŠ” 경우λ₯Ό λΉΌμ£Όλ©΄ λœλ‹€.

λ¨Όμ € key-value ν˜•νƒœλ‘œ 데이터λ₯Ό 정렬을 ν•˜κΈ°μœ„ν•΄ tableμ΄λΌλŠ” 객체λ₯Ό λ§Œλ“€μ–΄μ€¬λ‹€.
clothes의 각 행은 [μ˜μƒμ˜ 이름, μ˜μƒμ˜ μ’…λ₯˜]둜 이루어져 있기 λ•Œλ¬Έμ—, μ˜μƒμ˜ μ’…λ₯˜λ³„λ‘œ arrayλ₯Ό κ°–λŠ” 객체의 key둜 λ§Œλ“  λ’€, μ˜μƒμ˜ 이름은 ν•΄λ‹Ήν•˜λŠ” μ’…λ₯˜μ˜ 배열에 λ‹΄μ•˜λ‹€.

그리고 λ°˜λ³΅λ¬Έμ„ 톡해 table[key]의 길이 + 1 만큼 λ°˜λ³΅λ¬Έμ„ 톡해 κ³±ν•΄μ€€ λ’€
리턴할 λ•Œ -1 처리λ₯Ό ν•΄μ£Όμ—ˆλ‹€!

경우의 수 곡식을 μ•Œλ©΄ 생각보닀 μ‰½κ²Œ ν’€ 수 μžˆλŠ” λ¬Έμ œμ˜€μ§€λ§Œ.. μ˜€λžœλ§Œμ— μˆ˜ν•™ 곡식을 μƒκ°ν•˜λ €λ‹ˆ μ²˜μŒμ—λŠ” λ§‰λ§‰ν–ˆλ‹€..γ… γ… 

profile
천천히 ν•œ κ±ΈμŒμ”©

0개의 λŒ“κΈ€