IT/알고리즘
프로그래머스 문자열 내 마음대로 정렬하기
어센트
2020. 5. 30. 18:42
코딩테스트 연습 - 문자열 내 마음대로 정렬하기
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1�
programmers.co.kr
처음에 입력받은 문자열 배열을 먼저 정렬한 후 인덱스별로 정렬하려는 멍청한 생각을 했다..
결국 문제를 해결하긴 했는데 Comparator를 이용한 방법과 각 문자의 n번째 인덱스를 각 문자열 처음에 추가하여 정렬 메소드를 사용하여 푸는 2가지 방식으로 문제를 해결했다.
Comparator 사용 방법
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, new Comparator<String>(){
@Override
public int compare(String s1, String s2){
if(s1.charAt(n) > s2.charAt(n)) return 1;
else if(s1.charAt(n) == s2.charAt(n)) return s1.compareTo(s2);
else if(s1.charAt(n) < s2.charAt(n)) return -1;
else return 0;
}
});
return strings;
}
}
2번째 방법
package lv1;
import java.util.*;
class 문자열_내마음대로_정렬하기
{
public static String[] solution(String[] strings, int n) {
String[] answer = new String[strings.length];
for(int i=0;i<answer.length;i++)
{
answer[i]= Character.toString(strings[i].charAt(n)) +strings[i];
}
Arrays.sort(answer);
for (int i = 0; i < answer.length; i++) {
answer[i] = answer[i].substring(1);
}
return answer;
}
}