๋ฐฑ์ค€ - ๋ฉ์น˜(Swift)

2022. 11. 9. 11:28ใ†Algorithm

๋ฐฑ์ค€ - ๋ฉ์น˜(Swift)

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

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

 

7568๋ฒˆ: ๋ฉ์น˜

์šฐ๋ฆฌ๋Š” ์‚ฌ๋žŒ์˜ ๋ฉ์น˜๋ฅผ ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ, ์ด ๋‘ ๊ฐœ์˜ ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๊ทธ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ฒจ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ x kg์ด๊ณ  ํ‚ค๊ฐ€ y cm๋ผ๋ฉด ์ด ์‚ฌ๋žŒ์˜ ๋ฉ์น˜๋Š” (x, y)๋กœ ํ‘œ์‹œ๋œ๋‹ค. ๋‘ ์‚ฌ๋žŒ A ์™€ B์˜ ๋ฉ

www.acmicpc.net

 

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

 

๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ์œผ๋ฉด ์‰ฌ์šด ๋ฌธ์ œ์ด์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ์ง€์•Š๊ณ  ํ’€์–ด์„œ ๊ต‰์žฅํžˆ ๋Œ์•„์„œ ๊ฐ”๋‹ค.

์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ ์ž์‹ ๋ณด๋‹ค ๋” "ํฐ ๋ฉ์น˜"์˜ ์‚ฌ๋žŒ์˜ ์ˆ˜๋กœ ์ •ํ•ด์ง„๋‹ค. ์ธ๋ฐ ๋‚˜๋Š” ์ด๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  2๋“ฑ์ด ์—ฌ๋Ÿฌ๋ช… ๋‚˜์™”๋‹ค๋ฉด ๋‹ค์Œ ๋“ฑ์ˆ˜๋Š” ์—ฌ๋Ÿฌ๋ช…์„ ๊ณ ๋ คํ•œ ๊ฐ’์œผ๋กœ ๊ตฌํ–ˆ์—ˆ๋‹ค.์ฆ‰ 1 2 2 3์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š”๋ฐ 1 2 2 4๋กœ ๋‹จ์ •์ง€์€ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ฒ˜์Œ์—๋Š” ์‚ฌ๋žŒ ๊ตฌ์กฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์„œ prize๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์™„์ „ํžˆ ํ—›์งš์—ˆ์—ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ œ์˜ ์ž…๋ ฅ์กฐ๊ฑด์€ 50์ดํ•˜์ธ๋ฐ ์ด ๋ถ€๋ถ„์„ ๋ณด๊ณ  ์™„์ „ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•ด๋„ ๋˜๊ฒ ๊ตฌ๋‚˜๋ฅผ ์ง๊ฐ์ ์œผ๋กœ ์•Œ์•˜์–ด์•ผ ํ–ˆ๋‹ค. ์ „๋ถ€ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ž์‹ ๋ณด๋‹ค ๋ฉ์น˜๊ฐ€ ํฐ ์‚ฌ๋žŒ์— ๋Œ€ํ•ด์„œ๋งŒ ์นด์šดํŠธ๋ฅผ ํ•˜๋Š” ์™„๋ฒฝํ•œ ๊ตฌํ˜„๋ฌธ์ œ์˜€๋˜ ๊ฒƒ์ด๋‹ค.๊ทธ๋ ‡๊ฒŒ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ ํ’€์ด๊ฐ€ ๋œ๋‹ค.

 

์™œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ •๋ ฌ์„ํ•˜๊ณ  ์—ด์‹ฌํžˆ rank๋ฅผ ์ง์ ‘ ๊ตฌํ•ด์„œ ๋„ฃ์–ด์ฃผ๋ คํ–ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋˜ ์•Œ๊ฒŒ ๋œ ์ ์€ sortํ•˜์ง€์•Š๊ณ  ์™„์ „ํƒ์ƒ‰ํ•˜๋Š” ๊ฒฝ์šฐ์— ์ˆœ์„œ๋Œ€๋กœ ๋ฌด์–ธ๊ฐ€ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์„๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด terminator๋ฅผ ์ด์šฉํ•ด์„œ ์ญ‰ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค. sort๋ฅผํ•˜๊ฒŒ๋˜๋ฉด ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋‹ˆ ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒŒ ์ข‹์•„๋ณด์ธ๋‹ค.

 

import Foundation

let n = Int(readLine()!)!
var humans = [[Int]]()
for i in 0..<n {
    let input = readLine()!.components(separatedBy:" ").map{Int($0)!}
    humans.append(input)
}

for i in 0..<n {
    var rank = 1
    for j in 0..<n {
        // ๋ชธ๋ฌด๊ฒŒ์™€ ํ‚ค๊ฐ€ ๋” ํฐ ๊ฒƒ์ด ์กด์žฌํ• ๋•Œ ๋žญํ‚น์„ ํ•˜๋‚˜ ๋Š˜๋ ค์ค€๋‹ค
        if humans[i][0] < humans[j][0] && humans[i][1] < humans[j][1] {
            rank += 1
        }
    }
    print(rank, terminator:" ")
}