(Swift) 백준 7568 덩치

SteadySlower·2022년 5월 28일
0

Coding Test

목록 보기
49/305

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 {
        // 몸무게와 키가 모두 작으면 등수에 + 1
        if person1.0 < person2.0 && person1.1 < person2.1 {
            rank += 1
        }
    }
    ranks.append(rank)
}

ranks.forEach { rank in
    print(rank, terminator: " ")
}
  1. 자기 보다 덩치가 큰 사람의 수를 구하기 위해서는 무조건 모든 사람과 비교하는 수 밖에는 없습니다. (브루탈 포스)
    1. N이 50이므로 이중 반복문을 사용해도 안전합니다.
  2. 입력을 튜플의 형태로 받아서 몸무게와 키를 하나의 자료형에 저장할 수 있도록 합니다.
  3. 1등에서 시작해서 자기 자신보다 덩치가 큰 사람을 만날 때 마다 1씩 더합니다.
  4. 모든 사람과 비교를 할 때 덩치가 같은 사람은 등수에 영향을 미치지 못하므로 자기자신을 제외하지 않아도 됩니다.
profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글