본문 바로가기
Algorithm/Problem_프로그래머스

프로그래머스(문자열 내 마음대로 정렬하기) - Java

by uyoo 2020. 5. 20.

[문자열 내 마음대로 정렬하기]

https://programmers.co.kr/learn/courses/30/lessons/12915

 

코딩테스트 연습 - 문자열 내 마음대로 정렬하기

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

programmers.co.kr

 

* 로직

  • 배열에 대한 정렬을 진행할 때 조건에 언급된 정렬 기준을 설정한다
    • n번째 index에 있는 문자 기준으로 오름차순
    • 만약 같다면 -> 단어 자체 기준 사전식 오름차순

 

import java.io.*;
import java.util.*;

class Solution {
    public String[] solution(String[] strings, int n) {
        String[] answer = {};
        Arrays.sort(strings, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                String str1 = o1.substring(n, n+1);
                String str2 = o2.substring(n, n+1);
                if(str1.compareTo(str2) > 0) {
                    return 1;
                }

                else if(str1.compareTo(str2) == 0) {
                    return o1.compareTo(o2);
                }

                return -1;
            }
        });
        
        answer = new String[strings.length];
        for(int i=0; i<answer.length; ++i) {
            answer[i] = strings[i];
        }
        
        return answer;
    }
}