๋ฐฑ์ค - ๋ฑ์๊ตฌํ๊ธฐ(Swift)
2022. 11. 9. 17:16ใAlgorithm
๋ฐฑ์ค - ๋ฑ์๊ตฌํ๊ธฐ(Swift)
๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/1205
๋์ ํ์ด
๊ตฌํ๋ฌธ์ ๋ก ์ด๋ ต์ง ์๊ฒ ํ์๋ค.
ํต์ฌ์ ์์์๋ถํฐ ๋ช๋ฒ์งธ์ธ์ง๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ๋ฐ์ ์ ์๋ณด๋ค ํฐ ๊ฐ์ด ๋ช๊ฐ์ธ์ง๋ง ์นด์ดํธํ๋ฉด ๋๋ค.
๋ค๋ฅธ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๋ ๋๋ ๋ฐฐ์ด์ ์ค์ ๋ก ๊ฐ์ ๋ฃ์๋๋ฐ ๋ฑํ ๊ทธ๋ดํ์๊ฐ ์์๋ค. ๋ฐ๋ก arr์ ์์๋ค๊ณผ ์๋ก ๋ค์ด์จ ๊ฐ์ ๋น๊ตํจ์ผ๋ก์จ Rank๋ฅผ๊ตฌํ ์ ์๋ค.
import Foundation
let input = readLine()!.components(separatedBy:" ").map{Int($0)!}
let N = input[0], score = input[1], P = input[2] // ๊ฐ์, ์ ์, ์์ฉ์น
if N == 0 { // ํ์ฌ ๋ด๊ณ ์๋๊ฒ ์๋ค๋ฉด 1๋ฑ์ ์ถ๋ ฅ
print("1")
exit(0)
}
var arr = readLine()!.components(separatedBy:" ").map{Int($0)!}
if N == P && arr[N-1] >= score { // ์์ฉ์น๊ฐ ๊ฝ์ฐฌ ์ํ์ด๋ฉด์ ๋์ ๊ฐ์ด ์
๋ ฅ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค๋ฉด ์ฝ์
๋ถ๊ฐ
print("-1")
} else {
var insertIndex = arr.count
for (i, x) in arr.enumerated() {
if score > x {
insertIndex = i // ์ ์๋ฅผ ์ฝ์
ํ ์์น๋ฅผ ๊ตฌํจ
break
}
}
arr.insert(score, at: insertIndex)
var rank = 1
for x in arr {
if arr[insertIndex] < x { // ์ฝ์
๋ ์์น์ ๊ฐ๋ณด๋ค ํฐ๊ฐ์ด ์กด์ฌํ๋ฉด rank๋ฅผ ์ฌ๋ ค์ค
rank += 1
}
}
print(rank)
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค - ์ค์์น ์ผ๊ณ ๋๊ธฐ(Swift) (0) | 2022.11.10 |
---|---|
๋ฐฑ์ค - ๊ธฐ์์บ์คํฐ(Swift) (0) | 2022.11.10 |
๋ฐฑ์ค - ํฌ๋ก์ค์ปจํธ๋ฆฌ(Swift) (0) | 2022.11.09 |
๋ฐฑ์ค - ๋ฉ์น(Swift) (0) | 2022.11.09 |
๋ฐฑ์ค - ์ฌ๋ฆผํฝ(Swift) (0) | 2022.11.08 |