7568번: 덩치
let N = Int(readLine()!)!
var people = [(Int, Int)]()
for _ in 0..<N {
let input = readLine()!.split(separator: " ").map { Int(String($0))! }
people.append((input[0], input[1]))
}
var ranks = [Int]()
for person1 in people {
var rank = 1
for person2 in people {
if person1.0 < person2.0 && person1.1 < person2.1 {
rank += 1
}
}
ranks.append(rank)
}
ranks.forEach { rank in
print(rank, terminator: " ")
}
- 자기 보다 덩치가 큰 사람의 수를 구하기 위해서는 무조건 모든 사람과 비교하는 수 밖에는 없습니다. (브루탈 포스)
- N이 50이므로 이중 반복문을 사용해도 안전합니다.
- 입력을 튜플의 형태로 받아서 몸무게와 키를 하나의 자료형에 저장할 수 있도록 합니다.
- 1등에서 시작해서 자기 자신보다 덩치가 큰 사람을 만날 때 마다 1씩 더합니다.
- 모든 사람과 비교를 할 때 덩치가 같은 사람은 등수에 영향을 미치지 못하므로 자기자신을 제외하지 않아도 됩니다.