์ƒˆ์†Œ์‹

๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜/-- ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (Programmers) - Swift

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] (Swift) - ์œ„์žฅ

  • -

* ๋ฌธ์ œ๋งํฌ

https://programmers.co.kr/learn/courses/30/lessons/42578?language=swift

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์œ„์žฅ

 

programmers.co.kr

 

*์ ‘๊ทผ ๋ฐฉ๋ฒ• ๋ฐ ์ค‘์š” ํฌ์ธํŠธ

๊ตฌํ˜„๋ณด๋‹ค๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์ตœ์†Œํ•œ 1๊ฐœ๋งŒ ์ž…์–ด๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์—,

(์ข…๋ฅ˜๋ณ„ ์˜์ƒ์ˆ˜ + 1(์•ˆ์ž…๋Š”๊ฒฝ์šฐ) * (์ข…๋ฅ˜๋ณ„ ์˜์ƒ์ˆ˜ + 1(์•ˆ์ž…๋Š”๊ฒฝ์šฐ) * (์ข…๋ฅ˜๋ณ„ ์˜์ƒ์ˆ˜ + 1(์•ˆ์ž…๋Š”๊ฒฝ์šฐ) .....   -1 (๋ชจ๋‘ ์•ˆ์ž…์œผ๋ฉด ์•ˆ๋˜๋‹ˆ๊นŒ ๋นผ์ค˜์•ผํ•จ) ์ด ๋œ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด, [์ฌ๊ธ€๋ผ์Šค 2์ข…๋ฅ˜, ๋ฐ”์ง€ 2์ข…๋ฅ˜] ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด, ๊ฒฝ์šฐ์˜ ์ˆ˜ = (2+1) * (2+1) - 1  = 8์ด ๋œ๋‹ค.

์ฝ”๋“œ์ ์ธ ๋ถ€๋ถ„์—์„œ๋Š” ๋”•์…”๋„ˆ๋ฆฌ๋กœ ์ข…๋ฅ˜๋ณ„๋กœ ์นด์šดํŒ…ํ•œ๋‹ค. ์ข…๋ฅ˜์˜ ์ด๋ฆ„์€ ์ƒ๊ด€์—†์œผ๋‹ˆ key๊ฐ’๋งŒ ๋”ฐ๋กœ ๋ฝ‘์•„์„œ ๊ณ„์‚ฐํ•ด์ฃผ์—ˆ๋‹ค.

 

* Code(Swift)

import Foundation

func solution(_ clothes:[[String]]) -> Int {
    var dict = Dictionary<String, Int>()
    
    for c in clothes{
        if dict[c[1]] == nil{
            dict[c[1]] = 1
        }else{
            dict[c[1]]! += 1
        }
    }
    var numOfClothes = Array<Int>()
    
    for (_ ,value) in dict{
        numOfClothes.append(value)
    }

    return numOfClothes.reduce(1){$0 * ($1+1)} - 1
}

 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.