알고리즘문제 풀어보기

c# - Sort할때 실수하는 상황 <Sort>안됨

rimugiri 2024. 2. 20. 10:28
728x90
public string[] solution(string[] strings, int n)
{
    strings.ToList().Sort((x,y) => x[n].CompareTo(y[n]));
    return strings.ToArray();
}

 

가끔 알고리즘 문제 풀경우 한줄로 코딩하기 위해 이런식으로 작성할 경우가 있다.

여기서 가장 큰 맹점은 strings.ToList()는 strings자체를 List로 변환하는 것이 아니라 List를 반환해 주는 함수이다.

위 방식으로는 strings가 정렬되지 않는다.

따라서 아래의 방식과 같이 한번 반환값을 받아준 뒤 정렬을 실행해야된다

 

public string[] solutions(string[] strings, int n)
{
    List<string> newStrings = strings.ToList();
    newStrings.Sort((x, y) => x[n].CompareTo(y[n]));
    return newStrings.ToArray();
}

 

물론 위 경우는 Array.Sort()를 사용하면 간편하다.

728x90