본문 바로가기
Algorithm/문제풀이_백준

Swift) 백준 11650번 (좌표 정렬하기)

by Joahnee 2021. 8. 23.

요구능력 : 좌표기능과 정렬함수를 활용할줄 아느냐

 

코드설명 : Swift에 내장된 정렬함수를 사용했다.

Swift의 강력한 기능 중 하나인 좌표형식으로 저장할 수 있는기능.. 난 까먹고 있었다.

sort함수를 평소에는 sort() 나 sort(by: <) 이런식으로만 썻었는데 처음 클로저로 써봤다.

앞에 좌표와 뒤의 좌표의 x좌표가 같다면 y좌표를 오름차순 같지않다면 x좌표를 오름차순한다.

 

후기 : 매우 간단한 문제지만 좌표기능과 sort()함수 활용법을 몰라서 고전한 문제..

 

let n = Int(readLine()!)!
var arr: [(Int, Int)] = []

for _ in 0..<n {
    let a = readLine()!.split(separator: " ").map{Int($0)!}
    arr.append((a[0], a[1]))
}

arr.sort(by: {
    $0.0 == $1.0 ? $0.1 < $1.1 : $0.0 < $1.0
} )

for x in 0..<n {
    print("\(arr[x].0) \(arr[x].1)")
}

댓글