MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 14235๋ฒˆ: ํฌ๋ฆฌ์Šค๋งˆ์Šค ์„ ๋ฌผ ๋ณธ๋ฌธ

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

[swift] ๋ฐฑ์ค€ - 14235๋ฒˆ: ํฌ๋ฆฌ์Šค๋งˆ์Šค ์„ ๋ฌผ

MUKER 2023. 7. 10. 22:14

 

14235๋ฒˆ: ํฌ๋ฆฌ์Šค๋งˆ์Šค ์„ ๋ฌผ

ํฌ๋ฆฌ์Šค๋งˆ์Šค์—๋Š” ์‚ฐํƒ€๊ฐ€ ์ฐฉํ•œ ์•„์ด๋“ค์—๊ฒŒ ์„ ๋ฌผ์„ ๋‚˜๋ˆ ์ค€๋‹ค. ์˜ฌํ•ด๋„ ์‚ฐํƒ€๋Š” ์„ ๋ฌผ์„ ๋‚˜๋ˆ ์ฃผ๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๋…ธ๋ ฅ์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ „์„ธ๊ณ„๋ฅผ ๋Œ์•„๋Œ•๊ธฐ๋ฉฐ ์ฐฉํ•œ ์•„์ด๋“ค์—๊ฒŒ ์„ ๋ฌผ์„ ๋‚˜๋ˆ ์ค„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ

www.acmicpc.net

๋ฌธ์ œ

ํฌ๋ฆฌ์Šค๋งˆ์Šค์—๋Š” ์‚ฐํƒ€๊ฐ€ ์ฐฉํ•œ ์•„์ด๋“ค์—๊ฒŒ ์„ ๋ฌผ์„ ๋‚˜๋ˆ ์ค€๋‹ค. ์˜ฌํ•ด๋„ ์‚ฐํƒ€๋Š” ์„ ๋ฌผ์„ ๋‚˜๋ˆ ์ฃผ๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๋…ธ๋ ฅ์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ „์„ธ๊ณ„๋ฅผ ๋Œ์•„๋Œ•๊ธฐ๋ฉฐ ์ฐฉํ•œ ์•„์ด๋“ค์—๊ฒŒ ์„ ๋ฌผ์„ ๋‚˜๋ˆ ์ค„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์‚ฐํƒ€์˜ ์ฐ๋งค๋Š” ๊ทธ๋ ‡๊ฒŒ ํฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์„ธ๊ณ„ ๊ณณ๊ณณ์— ๊ฑฐ์ ๋“ค์„ ์„ธ์›Œ ๊ทธ ๊ณณ์„ ๋ฐฉ๋ฌธํ•˜๋ฉฐ ์„ ๋ฌผ์„ ์ถฉ์ „ํ•ด ๋‚˜๊ฐˆ ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ, ์ฐฉํ•œ ์•„์ด๋“ค์„ ๋งŒ๋‚  ๋•Œ๋งˆ๋‹ค ์ž์‹ ์ด ๋“ค๊ณ ์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ€์น˜๊ฐ€ ํฐ ์„ ๋ฌผ ํ•˜๋‚˜๋ฅผ ์„ ๋ฌผํ•ด ์ค„ ๊ฒƒ์ด๋‹ค.

์ด์ œ ์‚ฐํƒ€๊ฐ€ ์„ ๋ฌผ์„ ๋‚˜๋ˆ ์ค„ ๊ฒƒ์ด๋‹ค. ์ฐจ๋ก€๋Œ€๋กœ ๋ฐฉ๋ฌธํ•œ ์•„์ด๋“ค๊ณผ ๊ฑฐ์ ์ง€์˜ ์ •๋ณด๋“ค์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์•„์ด๋“ค์ด ์ค€ ์„ ๋ฌผ๋“ค์˜ ๊ฐ€์น˜๋“ค์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค. ๋งŒ์•ฝ ์•„์ด๋“ค์—๊ฒŒ ์ค„ ์„ ๋ฌผ์ด ์—†๋‹ค๋ฉด -1์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์—์„œ๋Š” ์•„์ด๋“ค๊ณผ ๊ฑฐ์ ์ง€๋ฅผ ๋ฐฉ๋ฌธํ•œ ํšŸ์ˆ˜ n์ด ์ฃผ์–ด์ง„๋‹ค.(1≤n≤5,000)

๋‹ค์Œ n์ค„์—๋Š” a๊ฐ€ ๋“ค์–ด์˜ค๊ณ , ๊ทธ ๋‹ค์Œ a๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ๋“ค์–ด์˜จ๋‹ค. ์ด๋Š” ๊ฑฐ์ ์ง€์—์„œ a๊ฐœ์˜ ์„ ๋ฌผ์„ ์ถฉ์ „ํ•˜๋Š” ๊ฒƒ์ด๊ณ , ๊ทธ ์ˆซ์ž๋“ค์ด ์„ ๋ฌผ์˜ ๊ฐ€์น˜์ด๋‹ค. ๋งŒ์•ฝ a๊ฐ€ 0์ด๋ผ๋ฉด ๊ฑฐ์ ์ง€๊ฐ€ ์•„๋‹Œ ์•„์ด๋“ค์„ ๋งŒ๋‚œ ๊ฒƒ์ด๋‹ค. ์„ ๋ฌผ์˜ ๊ฐ€์น˜๋Š” 100,000๋ณด๋‹ค ์ž‘์€ ์–‘์˜ ์ •์ˆ˜์ด๋‹ค.(1≤a≤100)

์ถœ๋ ฅ

a๊ฐ€ 0์ผ ๋•Œ๋งˆ๋‹ค, ์•„์ด๋“ค์—๊ฒŒ ์ค€ ์„ ๋ฌผ์˜ ๊ฐ€์น˜๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค. ๋งŒ์•ฝ ์ค„ ์„ ๋ฌผ์ด ์—†๋‹ค๋ฉด -1์„ ์ถœ๋ ฅํ•˜๋ผ. ์ ์–ด๋„ ํ•˜๋‚˜์˜ ์ถœ๋ ฅ์ด ์žˆ์Œ์„ ๋ณด์žฅํ•œ๋‹ค.

์˜ˆ์ œ


์„ฑ๊ณต ํ’€์ด

var gifts = [Int]()
for _ in 0..<Int(readLine()!)! {
    let a = readLine()!
    if a == "0" { // 0์ผ๋•Œ ์„ ๋ฌผ ๋‚˜๋ˆ ์ฃผ๊ธฐ
        print(gifts.isEmpty ? -1 : gifts.popLast()!)
    } else { // ๊ฑฐ์ ์—์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์„ ๋ฌผ ์ฑ„์šฐ๊ธฐ
        gifts += a.split { $0 == " " }.map { Int($0)! }[1...]
        gifts.sort(by: <)
    }
}