[go] Sort 패키지와 Slice 메소드

Go 언어의 sort 패키지는 다양한 데이터 유형을 정렬하기 위한 기능을 제공합니다. 이 기능은 내장된 데이터 유형인 Slice의 요소를 정렬하는 메소드를 포함하고 있습니다.

이번 글에서는 Go 언어의 sort 패키지를 사용하여 Slice를 정렬하는 방법에 대해 알아보겠습니다.

Slice 정렬

Go 언어에서는 Slice를 정렬하기 위한 내장된 메소드를 제공합니다. 다음은 sort 패키지의 Ints 메소드를 사용하여 정수형 Slice를 정렬하는 예시입니다.

package main

import (
    "fmt"
    "sort"
)

func main() {
    s := []int{5, 2, 6, 3, 1, 4}
    sort.Ints(s)
    fmt.Println(s)
}

이 예시에서 sort.Ints(s)를 호출하면 Slice s가 오름차순으로 정렬됩니다.

사용자 정의 타입으로 정렬

사용자가 정의한 데이터 타입을 정렬할 때는 Slice에 대한 LessSwap 메소드를 구현하는 것이 필요합니다. 예를 들어, 문자열로 구성된 Slice를 정렬하는 방법은 다음과 같습니다.

package main

import (
    "fmt"
    "sort"
)

type ByLength []string

func (s ByLength) Len() int      { return len(s) }
func (s ByLength) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
func (s ByLength) Less(i, j int) bool { return len(s[i]) < len(s[j]) }

func main() {
    fruits := []string{"apple", "banana", "kiwi", "orange"}
    sort.Sort(ByLength(fruits))
    fmt.Println(fruits)
}

위 예시에서 ByLength 타입에 대한 Less 메소드를 구현함으로써 문자열의 길이에 따라 정렬하도록 설정할 수 있습니다.

sort 패키지는 Slice를 정렬하기 위한 다양한 기능을 제공하며, 사용자는 이를 활용하여 다양한 타입의 데이터를 효율적으로 정렬할 수 있습니다.

이상으로 Go 언어의 sort 패키지와 Slice를 정렬하는 메소드에 대해 알아보았습니다. 관련된 추가 정보는 Go 언어의 공식 문서를 참고하시기 바랍니다.