문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

1 번째 시도
위 문제는 문자열을 정렬할 수 있냐는 묻는 직관적인 문제다. 다만 아주 조금 어려운점이 있다면 String 내에 특정 문자까지들끼리도 비교해야 한다는 것이다.
Arrays.sort()는 시간복잡도가 O(nlogn)이다.
절반을 다시 나누는 과정이 로그 시간(logn)에 해당하며, 각 단계에서 모든 원소에 대해 정렬을 수행하는 데 선형 시간(n)이 소요되므로, 전체 시간 복잡도는 O(nlogn)이 됩니다.
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 s1.compareTo(s2);
return s1.charAt(n) - s2.charAt(n) ;
}
});
return strings;
}
}
