다른 사람의 풀이
public class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = {};
ArrayList<String> arr = new ArrayList<>();
for (int i = 0; i < strings.length; i++) {
arr.add("" + strings[i].charAt(n) + strings[i]);
}
Collections.sort(arr);
answer = new String[arr.size()];
for (int i = 0; i < arr.size(); i++) {
answer[i] = arr.get(i).substring(1);
}
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Solution s = new Solution();
String[] strings={"abce", "abcd", "cdx"};
int n =2;
System.out.println(Arrays.toString(s.solution(strings,n)));
}
}
▶ strings[i].charAt(n) 리턴타입이 char형이다. 빈 문자열을 더해서 char타입을 String타입으로 형변환 해준다.
▶ Collections.sort(arr)
첫번째 요소를 기준으로 "사전순서"대로 정렬하고,
첫번째 요소가 같은 경우 두번째 요소를 기준으로 "사전순서"대로 정렬한다.
▶ substring(1) : substring의 인자가 하나만 있는 경우에는 1부터 끝까지 슬라이싱한다. 직전까지X
'프로그래머스(자바) > LV.1(자바)' 카테고리의 다른 글
숫자 문자열과 영단어→ map자료형 or 배열2개+replaceAll() (0) | 2022.12.17 |
---|---|
k번째 수 → copyOfRange(), 슬라이싱(slicing)★★ (0) | 2022.12.17 |
최소직사각형→2차원 리스트를 1차원 리스트★★ (0) | 2022.12.16 |
예산→오름차순 정렬★ + 작은 수부터 더하기★ (0) | 2022.12.16 |
이상한 문자 만들기★★★ (0) | 2022.12.16 |