[C#]정수 내림차순으로 배치하기
2020. 7. 27. 18:08ㆍ[C#] 코딩테스트 문제풀이
반응형
프로그래머스 문제
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
내 풀이
using System;
public class Solution {
public long solution(long n) {
long answer =0;
string a = n.ToString();
char[] temp = a.ToCharArray();
int[] temp1 =new int[temp.Length];
for(int i=0; i<temp.Length; i++)
{
temp1[i]+=(int)Char.GetNumericValue(temp[i]);
}
Array.Sort(temp1);
for(int j=0; j<temp1.Length; j++)
{
answer+=temp1[j]*((long)Math.Pow(10, j));
}
return answer;
}
}
깨달은점 : 간단하게 생각하였는데 생각보다 어려운 문제였다. 우선 long형 n이라는 정수를 내림차순 배치를 하여야하니
string a로 형변환을 진행한후 char형 배열 temp에 집어넣고
char형 배열을 int로 출력하는 방법을 잘모르겠어서 int형 배열도 한개 따로 두었다.
그 후 int형 배열에 char형 배열의 값을 하나씩 집어넣은 후 int 형 배열을 Sort()함수를 통해 정렬해준 후
long형 변수 answer에 각자리수 * 10의 j승을 넣어 줌으로써 answer를 출력해냈다.
아직 형변환이나 함수 사용이 미숙한 것을 느꼇고 좀 더 문제를 많이 풀어보고 좋은(효율성 좋은) 방식으로
푸는 연습도 해야겠다고 느꼇다.
반응형
'[C#] 코딩테스트 문제풀이' 카테고리의 다른 글
[C#] 이상한 문자 (0) | 2020.07.27 |
---|---|
[C#]자릿수 더하기 (0) | 2020.07.27 |
[C#] 정수 제곱근 판별 (0) | 2020.07.27 |
[C#] 제일 작은 수 제거하기 (0) | 2020.07.25 |
[C#] 짝수와 홀수 (0) | 2020.07.25 |