ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로그래머스 : 문자열 내 마음대로 정렬하기
    Solve Algorithms/Array, Heap, Stack, Queue 2020. 10. 21. 17:25
    728x90

    출처 : programmers.co.kr/learn/courses/30/lessons/12915

     

    알고리즘 분류 : Array, 정렬


    문제 설명

    문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다.

    제한 조건

    • strings는 길이 1 이상, 50이하인 배열입니다.
    • strings의 원소는 소문자 알파벳으로 이루어져 있습니다.
    • strings의 원소는 길이 1 이상, 100이하인 문자열입니다.
    • 모든 strings의 원소의 길이는 n보다 큽니다.
    • 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.

    입출력 예

    strings n return
    [sun, bed, car] 1 [car, bed, sun]
    [abce, abcd, cdx] 2 [abcd, abce, cdx]

     

    입출력 예 설명

    입출력 예 1
    sun, bed, car의 1번째 인덱스 값은 각각 u, e, a 입니다. 이를 기준으로 strings를 정렬하면 [car, bed, sun] 입니다.

     

    입출력 예 2
    abce와 abcd, cdx의 2번째 인덱스 값은 c, c, x입니다. 따라서 정렬 후에는 cdx가 가장 뒤에 위치합니다. abce와 abcd는 사전순으로 정렬하면 abcd가 우선하므로, 답은 [abcd, abce, cdx] 입니다.


    접근

    • 문제의 이해는 빨리 되었지만, 어떠한 방식으로 접근할지에 대해서는 고민의 시간이 생각보다 많이 필요했다. 단순히 반복문과 문자열 리스트로도 접근 가능할 것으로 예상했지만, 시간이 오래걸릴 것도 알았다. 때문에 다른 라이브러리의 도움을 받아야겠다고 생각했다.
    • 오랜만의 코딩테스트여서 그럴수도 있지만, Comparator, Comparable 등의 라이브러리는 아직 완벽히 다루지 못하는 것 같다. 빠른 적응이 필요할 것 같다.

    코드

    728x90

    댓글

kxmjhwn@gmail.com