https://programmers.co.kr/learn/courses/30/lessons/12915
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다.
간단히 사용된 함수 설명
charAt():문장중에 인덱스 위치에 해당되는 문자 추출하는 함수이다. if문이나 for문, switch문을 활용하면 좋다.
substring():문자열 자르기 함수이다. 해당되는 문자열을 추출하는것에 추가하여 원하는 만큼 범위의 문자를 가져올 수 있는 명령어. 이외에도 split 함수가 있는데, 주어진 문자로 분리하여 배열에 저장할 때 사용된다.
해당 단어인 sun에서 n(배열 인덱스 번호:1)자리를 charAt()으로 뽑고 해당 단어를 더하기를 해줬다.
그러면 다음과 같이 앞에 n의 자리에 문자가 앞에 있고, 정렬을 해준다.
[usun]
[usun, ebed]
[usun, ebed, acar]
그리고 get()으로 해당 단어마다 substring을 이용해 1번째 자리의 문자를 잘라주었습니다.
여기서 핵심은 charAt(), substring()입니다!!
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = new String[strings.length];
ArrayList<String> list = new ArrayList<String>();
for(int i=0; i<strings.length; i++){
list.add(strings[i].charAt(n)+strings[i]);
System.out.println(list);
}
Collections.sort(list);
for(int j=0; j<=list.size();j++) {
answer[j] = list.get(j).substring(1);
System.out.println(answer[j]);
}
return answer;
}