본문 바로가기

Programmers/Go

[Programmers/Go] 정수 내림차순으로 배치하기

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

 

코딩테스트 연습 - 정수 내림차순으로 배치하기

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이

programmers.co.kr