728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42746
처음에 순열을 통하여 접근하는 방법을 생각했으나 시간복잡도 오류가 발생하였다.
문자열 비교를 통해 정렬 하여 문제를 해결하였다.
소스코드1(시간복잡도 오류)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class Solution {
List<int> list = new List<int>();
public string solution(int[] numbers)
{
perm(numbers, 0);
return list.Max().ToString() ;
}
void perm (int[] arr, int depth )
{
if( arr.Length == depth )
{
StringBuilder strArr = new StringBuilder();
for (int i = 0; i < arr.Length; i++)
strArr.Append(arr[i]);
list.Add(int.Parse(strArr.ToString()));
}
else
{
for (int i = depth; i < arr.Length; i++)
{
int temp = arr[depth];
arr[depth] = arr[i];
arr[i] = temp;
perm(arr, depth + 1);
temp = arr[depth];
arr[depth] = arr[i];
arr[i] = temp;
}
}
}
}
소스코드2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class Solution
{
public string solution(int[] numbers)
{
List<string> strNumbers = new List<string>();
for (int i = 0; i < numbers.Length; i++)
strNumbers.Add(numbers[i].ToString());
strNumbers.Sort((a, b) => (b + a).CompareTo(a + b));
string answer = string.Join("", strNumbers);
return answer[0] == '0' ? "" : answer;
}
}
728x90
'코딩공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]Lv.2 주식가격C# (0) | 2023.08.01 |
---|---|
[프로그래머스]Lv.2 기능개발C# (0) | 2023.08.01 |
[프로그래머스]Lv.2 프로세스C# (0) | 2023.08.01 |
[프로그래머스]Lv.2 큰 수 만들기C# (0) | 2023.08.01 |
※[프로그래머스]Lv.2 타겟 넘버C# (0) | 2023.08.01 |