본문 바로가기

알고리즘

[백준][KOTLIN] 11650 좌표 정렬하기

728x90

풀이

  1. 입력 X, Y 좌표를 받을 수 있는 2차원 Int 배열을 선언한다.
  2. 1번의 배열에 0번째에 X 좌표 값을 넣고 1번째에 Y 좌표 값을 넣는다.
  3. 문제의 조건에 따라 sorting 을 한다. 이때 Arrays - sort 함수에서 Comparable 를 이용하여 X 좌표가 같을 경우 Y좌표의 크기를 비교한다.

코드

import java.util.*

fun main(ars: Array<String>) {
    val sc = Scanner(System.`in`)
    val n = sc.nextInt()

    val list = Array(n) {
        IntArray(2)
    }

    for (i in 0 until n) {
        val x = sc.nextInt()
        val y = sc.nextInt()
        list[i][0] = x
        list[i][1] = y
    }

    Arrays.sort(list) { e1, e2 ->
        if (e1[0] == e2[0]) {
            return@sort e1[1] - e2[1]
        } else {
            return@sort e1[0] - e2[0]
        }
    }

    for (i in 0 until n) {
        println("${list[i][0]} ${list[i][1]}")
    }
}
728x90