본문 바로가기

Study/algorithms

[백준] 11651 좌표 정렬하기 2

반응형

https://www.acmicpc.net/problem/11651

 

package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
)

var writer = bufio.NewWriter(os.Stdout)
var reader = bufio.NewReader(os.Stdin)

func printf(f string, a ...interface{}) { fmt.Fprintf(writer, f, a...) }
func scanf(f string, a ...interface{})  { fmt.Fscanf(reader, f, a...) }

type Point struct {
	x, y int
}

type SortBy []Point

func (a SortBy) Len() int      { return len(a) }
func (a SortBy) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a SortBy) Less(i, j int) bool {
	if a[i].y == a[j].y {
		return a[i].x < a[j].x
	} else {
		return a[i].y < a[j].y
	}
}

func main() {
	defer writer.Flush()
	var n int
	scanf("%d\n", &n)

	arr := make(SortBy, n)

	for i := 0; i < n; i++ {
		scanf("%d %d\n", &arr[i].x, &arr[i].y)
	}
	sort.Sort(arr)
	for i := 0; i < n; i++ {
		printf("%d %d\n", arr[i].x, arr[i].y)
	}
}

'Study > algorithms' 카테고리의 다른 글

[백준] 15649 N과 M (1)  (0) 2020.01.26
[백준] 10814 나이순 정렬  (0) 2020.01.25
[백준] 11650 좌표 정렬하기  (0) 2020.01.25
[백준] 2108 통계학  (0) 2020.01.25
[백준] 2751 수 정렬하기 golang  (0) 2020.01.25