Coding Test/Programmers

[Lv.1] 문자열 내림차순으로 배치하기 [프로그래머스_코딩테스트] [문자열, 정렬] [20분]

whawoo 2025. 6. 10. 15:57
반응형

🔍 문제 요약

https://school.programmers.co.kr/learn/courses/30/lessons/12917

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

알파벳 대문자와 소문자로 이루어진 문자열 s가 주어질 때 해당 문자열을 큰것부터 작은 순으로 정렬시킨 문자열을 반환하는 문제. (대문자가 소문자보다 더 작은 것으로 간주)

🧠 나의 접근 방식과 시행착오

 

using System;
using System.Collections.Generic;
using System.Text;

public class Solution
{
    /// <summary>
    /// 문자열 내림차순으로 배치하기
    /// https://school.programmers.co.kr/learn/courses/30/lessons/12917
    /// </summary>
    public string solution(string s)
    {
        var charList = new List<char>();
        charList.AddRange(s);
        charList.Sort();
        charList.Reverse();
        
        return string.Concat(charList);
    }
}

/// <summary>
/// C# 7.3
/// </summary>
internal class Program
{
    public static void Main(string[] args)
    {
        var sl = new Solution();
        var s = "Zbcdefg";
        Console.WriteLine(sl.solution(s));
    }
}

✅ 풀이 코드

피드백을 받은 부분은 list 대신에 array를 사용하면 좀 더 효율을 높일 수 있는 장점이 있다고 해서 코드를 가져왔다. string을 char 배열로 바꾸는 ToCharArray()를 잘 기억해두면 용이하게 쓸 수 있을 것으로 보임. (사실상 성능 차이는 크게 없다고 한다)

public string solution(string s)
{
    char[] chars = s.ToCharArray();
    Array.Sort(chars);
    Array.Reverse(chars);
    return new string(chars);
}

🔄 정리

저번에 문제를 풀면서 익혀둔 내림차순 정렬인 Sort + Reverse를 유용하게 사용한 문제. 풀이코드의 ToCharArray는 잘 기억해두기로 하자

반응형