MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ตœ๋นˆ๊ฐ’ ๊ตฌํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ตœ๋นˆ๊ฐ’ ๊ตฌํ•˜๊ธฐ

MUKER 2022. 12. 21. 16:43
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


๋ฌธ์ œํ’€์ด๋ฅผ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ’€์ด์™€
๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด๋กœ ๋‚˜๋ˆ„์–ด ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ’€์ด

import Foundation

func solution(_ array:[Int]) -> Int {
    var dictionary = [Int: Int]()
    var keyNum = 0
    var count = 0
    
    for i in array {
        if dictionary.contains { $0.key == i} {
            dictionary[i]! += 1
        } else {
            dictionary[i] = 1
        }
    }
    
    print(dictionary)
    for (i, j) in dictionary {
        if j == dictionary.values.max() {
            count += 1
            keyNum = i
        }
    }
    print(count)
    return count == 1 ? keyNum : -1
}
  • ๋”•์…”๋„ˆ๋ฆฌ์—์„œ contains๋Š” ํด๋กœ์ €๋กœ, value์™€ key๋ฅผ ์›ํ•˜๋Š” ์กฐ๊ฑด์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜์—ฌ Boolํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ ๋œ๋‹ค.
  • ์ตœ๋Œ€ํ•œ ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ’€๊ธฐ ์œ„ํ•ด  ์‚ด์ง ์–ด๋ ต๊ฒŒ ํ‘ผ ๊ฐ์ด ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ €๊ฒƒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์–ด์„œ ์˜คํžˆ๋ ค ์ข‹์•˜๋‹ค.

 

๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด

import Foundation

func solution(_ array:[Int]) -> Int {
    let dictionary =  Dictionary(grouping: array) { $0 }.sorted { $0.value.count > $1.value.count }
    return dictionary.count > 1 && dictionary[0].value.count == dictionary[1].value.count ? -1 : dictionary[0].key
}
  • ์™€์šฐ.. Dictionary(grouping: ) ์ฒ˜์Œ ์•Œ์•˜๋‹ค..!!
  • ๋ฐฐ์—ด์„ ์›ํ•˜๋Š” key๋กœ ๊ฐ™์€ value๋ผ๋ฆฌ ๋ฌถ์–ด์ค€๋‹ค๋‹ˆ ๋„ˆ๋ฌด ์œ ์šฉํ•˜๊ณ  ์งœ๋ฆฟํ•˜๋‹ค.
  • ๊ฑฐ๊ธฐ๋‹ค Dictionary.sorted ๋„ ์ฒ˜์Œ ์จ๋ดค๋Š”๋ฐ ์•ž์œผ๋กœ๋„ ์œ ์šฉํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.
  • ๋”•์…”๋„ˆ๋ฆฌ๋ž‘ ์ข€ ๋” ์นœํ•ด์ง„๊ฑฐ ๊ฐ™์•„์„œ ๋„ˆ๋ฌด ์ข‹๋‹ค.