inblog logo
|
πŸ‘¨πŸ»β€πŸ’»DriedPollack's Blog
    πŸ’‘Coding Testβ˜•Java

    [programmers] μ˜μƒ - Java

    μ½”λ‹ˆμ˜ μ˜μƒ μ‘°ν•© λ¬Έμ œλŠ” HashMap을 ν™œμš©ν•˜μ—¬ 각 μ˜μƒ μœ ν˜•μ˜ 수λ₯Ό μ €μž₯ν•˜κ³ , 이λ₯Ό 톡해 μ„œλ‘œ λ‹€λ₯Έ μ˜μƒ μ‘°ν•©μ˜ 수λ₯Ό κ³„μ‚°ν•œλ‹€. 각 μ˜μƒ μœ ν˜•λ³„λ‘œ μ˜μƒμ„ μž…μ§€ μ•Šμ•˜μ„ λ•Œμ˜ 경우의 수λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄ μ˜μƒμ˜ μˆ˜μ— 1을 λ”ν•œ 값을 κ³±ν•˜κ³ , λ§ˆμ§€λ§‰μœΌλ‘œ λͺ¨λ“  μ˜μƒμ„ μž…μ§€ μ•Šμ•˜μ„ 경우λ₯Ό κ³ λ €ν•˜μ—¬ 1을 λΉΌμ€€λ‹€. 이 문제λ₯Ό 톡해 μ‘°ν•© 곡식을 μ½”λ“œλ‘œ κ΅¬ν˜„ν•˜λŠ” 방법을 읡힐 수 μžˆλ‹€.
    DriedPollack's avatar
    DriedPollack
    Mar 15, 2024
    [programmers] μ˜μƒ - Java
    Contents
    μ˜μƒsolution.java핡심 ν‚€μ›Œλ“œκ²°λ‘ !

    μ˜μƒ

    문제 μ„€λͺ…

    μ½”λ‹ˆλŠ” 맀일 λ‹€λ₯Έ μ˜·μ„ μ‘°ν•©ν•˜μ—¬ μž…λŠ”κ²ƒμ„ μ’‹μ•„ν•©λ‹ˆλ‹€.
    예λ₯Ό λ“€μ–΄ μ½”λ‹ˆκ°€ κ°€μ§„ 옷이 μ•„λž˜μ™€ κ°™κ³ , 였늘 μ½”λ‹ˆκ°€ λ™κ·Έλž€ μ•ˆκ²½, κΈ΄ μ½”νŠΈ, νŒŒλž€μƒ‰ ν‹°μ…”μΈ λ₯Ό μž…μ—ˆλ‹€λ©΄ λ‹€μŒλ‚ μ€ μ²­λ°”μ§€λ₯Ό μΆ”κ°€λ‘œ μž…κ±°λ‚˜ λ™κ·Έλž€ μ•ˆκ²½ λŒ€μ‹  κ²€μ • μ„ κΈ€λΌμŠ€λ₯Ό μ°©μš©ν•˜κ±°λ‚˜ ν•΄μ•Όν•©λ‹ˆλ‹€.
    μ’…λ₯˜
    이름
    μ–Όκ΅΄
    λ™κ·Έλž€ μ•ˆκ²½, κ²€μ • μ„ κΈ€λΌμŠ€
    μƒμ˜
    νŒŒλž€μƒ‰ ν‹°μ…”μΈ 
    ν•˜μ˜
    μ²­λ°”μ§€
    κ²‰μ˜·
    κΈ΄ μ½”νŠΈ
    • μ½”λ‹ˆλŠ” 각 μ’…λ₯˜λ³„λ‘œ μ΅œλŒ€ 1κ°€μ§€ μ˜μƒλ§Œ μ°©μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μœ„ μ˜ˆμ‹œμ˜ 경우 λ™κ·Έλž€ μ•ˆκ²½κ³Ό κ²€μ • μ„ κΈ€λΌμŠ€λ₯Ό λ™μ‹œμ— μ°©μš©ν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€.
    • μ°©μš©ν•œ μ˜μƒμ˜ 일뢀가 κ²ΉμΉ˜λ”λΌλ„, λ‹€λ₯Έ μ˜μƒμ΄ κ²ΉμΉ˜μ§€ μ•Šκ±°λ‚˜, ν˜Ήμ€ μ˜μƒμ„ μΆ”κ°€λ‘œ 더 μ°©μš©ν•œ κ²½μš°μ—λŠ” μ„œλ‘œ λ‹€λ₯Έ λ°©λ²•μœΌλ‘œ μ˜·μ„ μ°©μš©ν•œ κ²ƒμœΌλ‘œ κ³„μ‚°ν•©λ‹ˆλ‹€.
    • μ½”λ‹ˆλŠ” ν•˜λ£¨μ— μ΅œμ†Œ ν•œ 개의 μ˜μƒμ€ μž…μŠ΅λ‹ˆλ‹€.
    μ½”λ‹ˆκ°€ κ°€μ§„ μ˜μƒλ“€μ΄ λ‹΄κΈ΄ 2차원 λ°°μ—΄ clothesκ°€ μ£Όμ–΄μ§ˆ λ•Œ μ„œλ‘œ λ‹€λ₯Έ 옷의 μ‘°ν•©μ˜ 수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”.

    μ œν•œμ‚¬ν•­

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

    μž…μΆœλ ₯ 예

    clothes
    return
    [["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]]
    5
    [["crow_mask", "face"], ["blue_sunglasses", "face"], ["smoky_makeup", "face"]]
    3

    μž…μΆœλ ₯ 예 μ„€λͺ…

    예제 #1
    headgear에 ν•΄λ‹Ήν•˜λŠ” μ˜μƒμ΄ yellow_hat, green_turban이고 eyewear에 ν•΄λ‹Ήν•˜λŠ” μ˜μƒμ΄ blue_sunglassesμ΄λ―€λ‘œ μ•„λž˜μ™€ 같이 5개의 쑰합이 κ°€λŠ₯ν•©λ‹ˆλ‹€.
    1. yellow_hat 2. blue_sunglasses 3. green_turban 4. yellow_hat + blue_sunglasses 5. green_turban + blue_sunglasses
    예제 #2
    face에 ν•΄λ‹Ήν•˜λŠ” μ˜μƒμ΄ crow_mask, blue_sunglasses, smoky_makeupμ΄λ―€λ‘œ μ•„λž˜μ™€ 같이 3개의 쑰합이 κ°€λŠ₯ν•©λ‹ˆλ‹€.
    1. crow_mask 2. blue_sunglasses 3. smoky_makeup

    solution.java

    import java.util.*; class Solution { public int solution(String[][] clothes) { HashMap<String, Integer> clothesMap = new HashMap<>(); for (String[] cloth : clothes) { String type = cloth[1]; clothesMap.put(type, clothesMap.getOrDefault(type, 0) + 1); } System.out.println(clothesMap); int answer = 1; for (int count : clothesMap.values()) { answer *= (count + 1); } return answer - 1; } }
     

    핡심 ν‚€μ›Œλ“œ

    • HashMap을 μƒμ„±ν•΄μ„œ 각 μœ ν˜•μ˜ 옷 수λ₯Ό μ €μž₯ν•œλ‹€.
    • clothes λ°°μ—΄μ˜ 각 행을 λ°˜λ³΅ν•΄μ„œ μœ ν˜•λ³„λ‘œ 옷이 λͺ‡κ°œλ‚˜ μžˆλŠ”μ§€ μ•Œμ•„λ‚Έλ‹€.
    • κ³±μ…ˆμ„ ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜λ₯Ό 1둜 μ„€μ •ν•˜κ³ , 옷의 μ’…λ₯˜λ³„λ‘œ μ˜·μ„ μž…μ§€ μ•Šμ•˜μ„ λ•Œμ˜ 경우의 수λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄ 옷의 μˆ˜μ— 1을 λ”ν•œ 값을 κ³±ν•œλ‹€.
    • λ§ˆμ§€λ§‰μœΌλ‘œ λͺ¨λ“  μ˜·μ„ μž…μ§€ μ•Šμ•˜μ„ κ²½μš°κ°€ μžˆμœΌλ―€λ‘œ 1을 λΉΌμ€€λ‹€.
     

    κ²°λ‘ !

    ν•΄λ‹Ή 문제λ₯Ό ν’€λ©΄μ„œ μ‘°ν•© 곡식을 ν™œμš©ν•˜λŠ” 법을 μ½”λ“œλ‘œ 읡힐 수 μžˆμ—ˆλ‹€.
     
    Share article
    Contents
    μ˜μƒsolution.java핡심 ν‚€μ›Œλ“œκ²°λ‘ !

    πŸ‘¨πŸ»β€πŸ’»DriedPollack's Blog

    RSSΒ·Powered by Inblog