본문 바로가기
프로그래머스 코딩테스트 문제/Level 1

[프로그래머스] - 문자열 내림차순으로 배치하기(C#)

by jyppro 2023. 8. 6.

문자열 내림차순으로 배치하기

이번에는 "문자열 내림차순으로 배치하기" 문제를 풀어보도록 하겠습니다.

 

문제 설명

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

 

제한 사항

  • str은 길이 1 이상인 문자열입니다.

 

입출력 예

s return
"Zbcdefg" "gfedcbZ"

 

시작 코드

public class Solution {
    public string solution(string s) {
        string answer = "";
        return answer;
    }
}

 

나의 풀이

using System;

public class Solution {
    public string solution(string s) {
        string answer = "";
        char[] temp = s.ToCharArray();
        Array.Sort(temp);
        Array.Reverse(temp);
        answer = new string(temp);
        return answer;
    }
}

 

코드 분석

string 타입의 s가 주어지며 코드는 시작합니다. char타입 배열 temp를 만들고 그 안에 s를 ToCharArray()를 사용하여 Char타입 배열로 만들어 넣어줍니다. Array 메서드의 Sort로 정렬, Reverse로 반대로 뒤집기를 실행한다음 answer에 temp를 string으로 담아 넣어줍니다. answer를 리턴하며 끝이 납니다.

 

풀이 설명

이번에는 주어진 문자열을 단순히 뒤집어 내림차순으로 정렬하기만 하면 되는 문제입니다. 그 과정에서 주로 살펴봐야 할 것은 temp를 생성할 때, Char타입 배열에 저장한 것과, Array 메서드의 사용입니다. 첫번째로 Char타입 배열을 사용한 것은 string으로도 할 수는 있지만, string으로 한다음 내림차순으로 만드는 것보단 Char 상태에서 내림차순으로 만드는 것이 효율적이기 때문입니다. 그리고 Array메서드의 Sort는 기본적으로 오름차순으로 정렬하며, Reverse는 현재 정렬상태를 반대로 뒤집는 역할을 합니다. 그렇게 내림차순으로 배치하는 과정이 끝나게 됩니다.

 

<NEXT>

이번에는 "문자열 내림차순으로 배치하기" 문제를 풀어보았습니다. 다음에는 위클리 챌린지 출제문제인 "부족한 금액 계산하기" 문제를 다뤄보도록 하겠습니다. 감사합니다.