1. 문제
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
2. 풀이
// 정수 내림차순으로 배치하기
package bigest
import "sort"
func Solution(n int64) int64 {
var num []int
var answer int64 = 0
for n > 0 {
num = append(num, int(n%10))
n /= 10
}
sort.Slice(num, func(u, v int) bool {
return num[u] > num[v]
})
for _, value := range num {
answer = answer*10 + int64(value)
}
return answer
}
3. 테스트
package bigest
import "testing"
func TestBigest(t *testing.T) {
result := Solution(118372)
if result != 873211 {
t.Errorf("Test1: Wrong result")
t.Errorf("expect: 873211")
t.Error("result:", result)
}
}
programmers.co.kr/learn/courses/30/lessons/12933
'Programmers > Go' 카테고리의 다른 글
[Programmers/Go] 제일 작은 수 제거하기 (0) | 2021.04.30 |
---|---|
[Programmers/Go] 정수 제곱근 판별 (0) | 2021.04.30 |
[Programmers/Go] 자연수 뒤집어 배열로 만들기 (0) | 2021.04.30 |
[Programmers/Go] 자릿수 더하기 (0) | 2021.04.30 |
[Programmers/Go] 이상한 문자 만들기 (0) | 2021.04.30 |