๋ฐฑ์ค - ์ฌ๋ฆผํฝ(Swift)
2022. 11. 8. 17:04ใAlgorithm
๋ฐฑ์ค - ์ฌ๋ฆผํฝ(Swift)
๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/8979
๋์ ํ์ด
์ด ๋ฌธ์ ๊ฐ ๊ตฌํ์ผ๋ก ๋ถ๋ฅ๋ ๋ฌธ์ ๊ฐ ์๋์๋ค๋ฉด ๋จ์ ๊ตฌํ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์ด๋ป๊ฒ ์์์๊น?
๋ฌธ์ ๋ ๋จ์ํ ๊ธ, ์, ๋๋ง์ ๋น๊ตํด์ ๋ฑ์๋ฅผ ์ ํ๋ค. ๋ฌธ์ ์ ์ ๋ ฅ์กฐ๊ฑด๋ ์๊ณ ์ต์ ์ ์ฐพ๋ ๋ฌธ์ ๋ ์๋๊ธฐ ๋๋ฌธ์ ๋จ์ํ ๊ตฌํํ๋ ๋ฅ๋ ฅ์ ๋ณด๋ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์ ์ ์์ ๊ฒ์ด๋ค.
๋ฌธ์ ๊ฐ ์ฌ๋ฐ๋ ์ ์ ์ฌ๋ฌ๊ฐ์ ์์ฑ์ ๋ฃ์ ํ๋กํผํฐ์ ==ํจ์๋ฅผ ๋ง๋ค๋ฉด์ ์ค์ ๋ก ๊ฐ๋ฐํ๋ ๋๋์ด ๋ค์๋ค. ๋ง์ง๋ง์ผ๋ก id๋ฅผ ๋ฃ์์ผ๋ก์จ ์ํ๊ณ ์ํ๋ ๋ฑ์๋ฅผ ์ป์ ์ ์๊ฒ ๋์๋ค.
import Foundation
struct Country {
var id: Int
var gold: Int
var silver: Int
var bronze: Int
var prize: Int
static func ==(_ lhs: Country, _ rhs: Country) -> Bool {
return (lhs.gold == rhs.gold) && (lhs.silver == rhs.silver) && (lhs.bronze == rhs.bronze)
}
}
let input = readLine()!.components(separatedBy:" ").map{Int($0)!}
let N = input[0], Fnum = input[1]
var countries: [Country] = []
for i in 0..<N {
let input = readLine()!.components(separatedBy:" ").map{Int($0)!}
countries.append(Country(id: input[0], gold: input[1], silver: input[2], bronze: input[3], prize: 0))
}
countries.sort(by: {$0.gold != $1.gold
? $0.gold > $1.gold
: ($0.silver == $1.silver
? $0.bronze > $1.bronze : $0.silver > $1.silver)})
var cur = countries[0]
var prize = 1
var cnt = 1
countries[0].prize = 1
for i in 1..<countries.count {
cnt += 1
if countries[i] == cur {
countries[i].prize = prize
} else {
cur = countries[i]
prize = cnt
countries[i].prize = prize
}
}
print(countries.filter{$0.id == Fnum}[0].prize)
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค - ํฌ๋ก์ค์ปจํธ๋ฆฌ(Swift) (0) | 2022.11.09 |
---|---|
๋ฐฑ์ค - ๋ฉ์น(Swift) (0) | 2022.11.09 |
๋ฐฑ์ค - ์ค ์ธ์ฐ๊ธฐ(Swift) (0) | 2022.11.08 |
๋ฐฑ์ค - ๋จ์ด๊ณต๋ถ(Swift) (0) | 2022.11.08 |
๋ฐฑ์ค - ํธ๋ญ ์ฃผ์ฐจ(Swift) (0) | 2022.11.08 |