๋ฐฑ์ค€ - ๋‹จ์–ด์ˆ˜ํ•™(Swift)

2022. 10. 25. 11:48ใ†์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค/๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฐฑ์ค€ - ๋‹จ์–ด์ˆ˜ํ•™(Swift)

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

https://www.acmicpc.net/problem/1339

 

1339๋ฒˆ: ๋‹จ์–ด ์ˆ˜ํ•™

์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 10)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๋‹จ์–ด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ๋ชจ๋“  ๋‹จ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์•ŒํŒŒ๋ฒณ์€ ์ตœ๋Œ€

www.acmicpc.net

 

 ๋‚˜์˜ ํ’€์ด

 

 

์ฒ˜์Œ์—๋Š” ๊ฐ ๋ฌธ์ž์—ด์˜ count์— ๋”ฐ๋ผ์„œ ๋†’์€ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ’์„ ๋ถ€์—ฌํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์˜ˆ์ œ๋“ค์€ ์ „๋ถ€ ๋งž์ง€๋งŒ ๋ฐ˜๋ก€๋“ค์ด ์กด์žฌํ–ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ABC, D, D๋กœ ์ฃผ์–ด์กŒ์„๋•Œ ๋‚ด๊ฐ€ ํ•œ ๋ฐฉ์‹์€ A:9, B:8, C:7, D:6์ด ๋œ๋‹ค. ํ•˜์ง€๋งŒ D๊ฐ€ 7์ธ ๊ฒฝ์šฐ๊ฐ€ ์ตœ๋Œ€์˜ ์ˆ˜๊ฐ€ ๋œ๋‹ค. 

์ฆ‰ ์ด ๋ฐฉ์‹์€ ์ •๋‹ต์ด ๋  ์ˆ˜ ์—†๋Š” ํ’€์ด์ด๋‹ค.(๋ฌธ์ œ๋ฅผ ๊ฐ„๊ณผํ–ˆ๋‹ค.)

 

๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๊ณ  ์•Œ๊ฒŒ ๋œ ์†”๋ฃจ์…˜์€ ๊ฐ ์ž๋ฆฌ์˜ ์ˆ˜๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ํฐ ๊ฐ’๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ๋ถ€์—ฌํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์˜ˆ์‹œ๋กœ ABA๋ผ๋Š” ๊ฐ’์ด ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ A๋Š” 10์˜ 2์Šน B๋Š” 10์˜ 1์Šน ์„ธ ๋ฒˆ์งธ A๋Š” 10์˜ 3์Šน์ด ๋˜๊ณ  A๋Š” 101, B๋Š” 10์ด๋œ๋‹ค.

A๋Š” B๋ณด๋‹ค ํฌ๊ธฐ ๋•Œ๋ฌธ์— 9๋ฅผ B๋Š” 8์„ ์ฃผ์–ด 101*9 + 10*8 = 989๊ฐ€ ๋œ๋‹ค.

 

 

import Foundation

let n = Int(readLine()!)!
var dic: [String: Int] = [:]
for _ in 0..<n {
    var word = readLine()!
    var val = Int(pow(10, Double(word.count-1)))
    for x in word {
        if dic[String(x)] == nil {
            dic[String(x)] = val
        } else {
            dic[String(x)]! += val
        }
        val = val/10
    }
}
var result = 0
var cnt = 9
for num in dic.values.sorted(by : >) {
    result += cnt * num
    cnt -= 1
}

print(result)

 

 

 ํ”ผ๋“œ๋ฐฑ

 

์ฒ˜์Œ ๋‚ด ํ’€์ด(ํ‹€๋ฆฐ ํ’€์ด)๋ฅผ ํ•˜๋ฉด์„œ ๋ช‡ ๊ฐ€์ง€ ์•Œ๊ฒŒ ๋œ ์ ์ด ์žˆ๋‹ค.

 

๋ฌธ์ž์—ด ๋ฐฐ์—ด์—์„œ ๋ฌธ์ž์—ด์„ ํ•˜๋‚˜์”ฉ ์ค„์—ฌ๋‚˜๊ฐˆ๋•Œ ๋งˆ์ง€๋ง‰์€ ์—†์–ด์ง€๋Š” ๊ฒƒ์ด ์•„๋‹Œ ""์ธ ์ฑ„๋กœ ๋‚จ์•„์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋”ฐ๋กœ ""๊ฐ€ ๋˜์—ˆ์„๋•Œ ๋ฐฐ์—ด ์ „์ฒด์—์„œ removeํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ–ˆ๋‹ค.

 

[["abcd", "efg"]]๋ผ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์ด ์žˆ์„๋•Œ flatMap์„ ํ•˜๋ฉด ["abcd", "efg"]๊ฐ€ ๋œ๋‹ค.

 

readLine์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋ฐ›์„๋•Œ ๊ผญ map์œผ๋กœ ๋ณ€ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์ง€ ๋ง์ž. ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋งŒ๋“œ๋Š”๊ฒŒ ์•„๋‹Œ ๋ฌธ์ž์—ด ๊ทธ๋Œ€๋กœ ํ‘ธ๋Š” ๋ฌธ์ œ์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ๋„ˆ๋ฌด ์‚ฌ๊ณ ์˜ ํญ์„ ์ขํžˆ์ง€ ๋ง์•„์•ผ ๊ฒ ๋‹ค.