[백준] 덩치 (7568)
문제 설명
입력 및 출력
» 입력
첫 줄에는 전체 사람의 수 N이 주어진다. 그리고 이어지는 N개의 줄에는 각 사람의 몸무게와 키를 나타내는 양의 정수 x와 y가 하나의 공백을 두고 각각 나타난다.
» 출력
여러분은 입력에 나열된 사람의 덩치 등수를 구해서 그 순서대로 첫 줄에 출력해야 한다. 단, 각 덩치 등수는 공백문자로 분리되어야 한다.
제한 사항
2 ≤ N ≤ 50 10 ≤ x, y ≤ 200
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
5 55 185 58 183 88 186 60 175 46 155 |
2 2 1 2 5 |
문제 풀이(SWIFT) 1
//
// main.swift
// BOJ7568_SWIFT
//
// Created by choiyoujun on 2022/03/10.
//
let N = Int(readLine()!)!
var list = [(Int, Int)]()
var score = [Int](repeating: 1, count: N)
var q = [(Int, Int)]()
for _ in 0..<N {
let xy = readLine()!.split(separator: " ").map { Int($0)! }
list.append((xy[0], xy[1]))
}
for e in list.sorted(by: >) {
q.append(e)
}
while !q.isEmpty {
let now = q.removeFirst()
for i in 0..<N {
if list[i].0 < now.0 && list[i].1 < now.1 {
score[i] += 1
}
}
}
var ans = ""
for i in score {
ans += "\(i) "
}
print(ans)