728x90
로직 : 처음 이 문제를 봤을때 어떻게 풀지 몰라서 다른사람 코드를 보고 풀이법을 이해하고 풀었다.
import java.util.*;
class Solution {
static public String[] solution(String[] strings, int n)
{
String[] answer = new String[strings.length];
List<String>list = new ArrayList<>();
for(int i=0;i<strings.length;i++)
{
list.add(strings[i].charAt(n)+strings[i]);
}
Collections.sort(list);
for(int i=0;i<strings.length;i++)
{
answer[i] = list.get(i).substring(1);
}
return answer;
}
}
시간이 너무 느리다.
베스트코드(프로그래머스 출처)
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;
}
}
728x90