Sort를 이용한 해결
정렬을 할 때 sort 메서드 사용하면 쉽게 해결할 수 있습니다. sort 에는 $0과 $1 을 서로 비교하여 정렬할 수 있도록 구현된 메서드입니다.
추가로 설명하면 sort는 O(n log n) 시간 복잡도를 가집니다.
만약 $0과 $1의 값이 튜플이라면 $0.0 으로 첫번째 값, $0.1로 두번째 튜플의 값에 접근할 수 있으며 다음과 같이 문제를 해결할 수 있습니다.
- 만약 비교하고자 하는 x 좌표가 같다면 y 좌표의 크기 비교하여 정렬을 하며
- 만약 비교하고자 하는 x 좌표가 틀리면 x 좌표의 크기를 비교하여 정렬을 합니다.
let line = Int(readLine()!)!
var arr: [(Int, Int)] = []
for _ in 1...line {
let num = readLine()!.split(separator: " ").map{Int($0)!}
arr.append((num[0],num[1]))
}
arr.sort { $0.0 == $1.0 ? $0.1 < $1.1 : $0.0 < $1.0 }
for i in arr {
print(i.0, i.1)
}
'Algorithm > Baekjoon' 카테고리의 다른 글
Swift - 백준 10816번 숫자 카드2 (0) | 2024.08.08 |
---|---|
Swift - 백준 2798번 블랙잭 (1등 코드) (0) | 2024.08.08 |
Swift - 백준 2839번 설탕 배달 (다이나믹 프로그래밍 DP) (0) | 2024.08.06 |
Swift - 백준 2292 벌집 (0) | 2024.08.05 |
Swift - 백준 1929 소수 구하기 (0) | 2024.08.04 |