Focus On Develop 🀟🀟

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λͺ¨μ˜κ³ μ‚¬ λ³Έλ¬Έ

iOS [Swift]/μ•Œκ³ λ¦¬μ¦˜

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λͺ¨μ˜κ³ μ‚¬

λˆ„λ¦¬λ‹¬μ΄ν‹€ 2020. 12. 16. 11:51

 <문제>


<μ „λž΅μ§œκΈ°>

3λͺ…μ˜ 수포자의 λ‹΅μ•ˆμ œμΆœ νŒ¨ν„΄μ„ μ•Œλ €μ£Όκ³ , 정닡이 μ£Όμ–΄μ‘Œμ„λ•Œ λˆ„κ°€ 제일 많이 닡을 λ§žμ·„λ‚˜? ν•˜λŠ” 문제고, μˆ˜ν¬μžλ“€μ΄ λ™μΌν•œ 점수λ₯Ό μŠ΅λ“ν–ˆλ‹€λ©΄ 졜고 λ“μ μžκ°€ μ—¬λŸ¬λͺ…이 될 μˆ˜λ„ μžˆλ‹€. 이 λ¬Έμ œμ—μ„œ 생각해봐야 ν•  ν¬μΈνŠΈλŠ” 크게 2가지라고 μƒκ°ν•œλ‹€. 1) μ •λ‹΅κ³Ό λ°˜λ³΅λ˜λŠ” νŒ¨ν„΄μ„ μ–΄λ–»κ²Œ 비ꡐ할지와, 2) μ§‘κ³„λœ 점수둜 μ΅œκ³ λ“μ μž 배열은 μ–΄λ–»κ²Œ λ§Œλ“€μ§€? μš°μ„  λ°˜λ³΅λ˜λŠ” νŒ¨ν„΄μ€.. κ°€μž₯ μ‰½κ²Œ λ– μ˜¬λ¦΄ 수 μžˆλŠ” 방법은 νŒ¨ν„΄μ˜ λ°˜λ³΅λ˜λŠ” λ‹¨μœ„μ˜ 갯수(μœ„ 문제의 경우 5개, 8개, 10개)에 λŒ€ν•œ μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό μ•Œλ©΄, 정닡을 ν•œλ²ˆ νƒμƒ‰ν•˜λ©΄μ„œ νŒ¨ν„΄μ„ 처음으둜 λŒμ•„κ°€κ²Œλ” ν•˜λŠ”κ²Œ κ°€λŠ₯ν•˜λ‹€. μ—¬κΈ°μ„œ 생각을 쑰금만 μ‘μš©ν•΄λ³΄λ©΄, μ •λ‹΅ 배열을 νƒμƒ‰ν•˜λŠ” λ™μ•ˆ κ·Έμ‹œμ μ˜ Indexλ₯Ό 각 νŒ¨ν„΄ λ‹¨μœ„μ˜ 갯수둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό 찾아버리면 λ”°λ‘œ κ³„μ‚°ν•˜μ§€ μ•Šκ³ λ„ νŒ¨ν„΄μ΄ μˆœνšŒν•˜λŠ” λ°©μ‹μœΌλ‘œ λ§Œλ“€ μˆ˜κ°€ μžˆλ‹€. (μ›ν˜•λ°°μ—΄μ΄ Motiveκ°€ 된걸둜 κΈ°μ–΅..γ…‹) μ•”νŠΌ 점수 λ§€κΈ°κΈ°λŠ” μ΄λ ‡κ²Œ ν•΄κ²°ν•˜λ©΄ 될 것 κ°™κ³ .. 졜고 λ“μ μž 배열은, μ§‘κ³„λœ μ μˆ˜μ—μ„œ μ΅œλŒ“κ°’μ„ μš°μ„  ꡬ해놓고 μ§‘κ³„λœ μ μˆ˜λ°°μ—΄μ„ νƒμƒ‰ν•˜λ©΄μ„œ 점수의 μ΅œλŒ“κ°’κ³Ό μΌμΉ˜ν•˜λŠ”κ°€? λΌλŠ” 둜직으둜 λ§Œλ“€μ–΄ λ³Ό 것이닀.

 

<μ½”λ“œ>

import Foundation

let supo1 = [1, 2, 3, 4, 5]
let supo2 = [2, 1, 2, 3, 2, 4, 2, 5]
let supo3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3]

func solution(_ answers:[Int]) -> [Int] {
    var ansCount: [Int] = [0, 0, 0]
    var result: [Int] = []

    for (i, ans) in answers.enumerated() {
        if ans == supo1[i % 5] {
            ansCount[0] += 1
        }
        if ans == supo2[i % 8] {
            ansCount[1] += 1
        }
        if ans == supo3[i % 10] {
            ansCount[2] += 1
        }
    }
    
    let curMax = ansCount.max()
    
    for (i, ans) in ansCount.enumerated() {
        if curMax == ans {
            result.append(i+1)
        }
    }
    
    return result
}

<Lessons Learned>

λ‚˜μ˜μ§€ μ•Šκ²Œ μ „λž΅μ„ μ„Έμ› λ‹€κ³  μƒκ°ν–ˆκ³ , μ—­μ‹œ 정닡도 λ¬΄λ‚œν•˜κ²Œ λ„μΆœν–ˆλ‹€. 그런데... 그런데 λ§μž…λ‹ˆλ‹€... 😭 😭 μ—­μ‹œ μ•Œκ³ λ¦¬μ¦˜ 코딩을 잘 ν•˜λŠ” μ‚¬λžŒλ“€μ€ 세상에 널리고 널렸닀.. ν•˜ν•˜.. λ‹€λ₯Έμ‚¬λžŒμ˜ 풀이λ₯Ό λ΄€μ„λ•Œ 띠용 ν•œ 뢀뢄이 2가지가 μžˆλŠ”λ°, 1) ansCount, resultλ₯Ό λ”°λ‘œ 뢄리할 ν•„μš”κ°€ μžˆμ—ˆμ„κΉŒ? Dictionaryν˜•νƒœλ‘œ μ €μž₯ν–ˆμ„ μˆ˜λ„ μžˆλŠ”λ°.. [ν•™μƒλ²ˆν˜Έ : 점수] μ΄λŸ°μ‹μœΌλ‘œ πŸ˜‚. 2) resultλ₯Ό μ§‘κ³„ν•˜λŠ” κ³Όμ •μ—μ„œ map, filterλ₯Ό μ‚¬μš©ν•  μˆ˜λ„ μžˆμ—ˆμ„ 것 κ°™λ‹€. (λ‚΄κ°€ λ‚΄ λΈ”λ‘œκ·Έμ— 정리해놓고도 μ΄λ ‡κ²Œ ν™œμš©μ„ λͺ»ν•œλ‹€. γ…‹γ…‹ 😁 😁 )

 

μ•Œκ³ λ¦¬μ¦˜μ— μ‚¬μš©λœ enumerated()κ°€ κΆκΈˆν•˜λ‹€λ©΄ πŸ‘‰  2020/12/16 - [iOS/기초λ₯Ό νƒ„νƒ„νžˆ!] - [Swift] enumerated()

 

좜처 : ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ λͺ¨μ˜κ³ μ‚¬

Comments