[알고리즘 문제] 문자열 내 마음대로 정렬하기

Z_제트·2024년 1월 12일
0

코드 초기화 ↓

public class Solution {
    public string[] solution(string[] strings, int n) {
        string[] answer = new string[] {};
        return answer;
    }
}

풀이 ↓

고려해야 할 부분 :
// 인덱스 n 번째 알파벳 겟하고, 알파벳 오름차순으로 정렬
// 만약, 인덱스 문자가 같은 문자열이 여럿일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치하도록 !

머릿속으로는 어떻게 작성하면 될지 그려지지만 잘 안 됨 이슈 발생 !

그래서 다른 분들의 풀이를 참고해보았는데,
정말 참신한 풀이 방법을 발견해서 적용해보았다.
(n번째 문자를 앞에 붙여서 푸는 방식)

using System;

public class Solution
{
    public string[] solution(string[] strings, int n)
    {
        string[] answer = new string[strings.Length];
        
        // n 번째 문자를 앞에 더한 문자열
        for (int i = 0; i < strings.Length; i++)
        {
            answer[i] = strings[i][n] + strings[i];
        }
        
        // 오름차순으로
        Array.Sort(answer);
        
        // 앞에 더한 문자 삭제
        // .Substring(시작위치index) - 시작위치부터 끝까지의 문자열 반환
        for (int i = 0; i < answer.Length; i++)
        {
            answer[i] = answer[i].Substring(1);
        }
        
        return answer;
    }
}

// 정렬은 그냥 Array.Sort 를 사용해도 됐었다 !
// .Substring(시작위치index) - 시작위치부터 끝까지의 문자열 반환


유연한 사고방식 파이팅 !

profile
trying to make the world a better place with a cool head and warm heart

0개의 댓글