Level1. 문자열 내마음대로 정렬하기
문제설명 )
풀이Code )
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<>(); // 정렬을 편하게 하기 위해 list 선언
for (int i=0; i<strings.length; i++) { // 문자열에서 n번째 값을 함께 list에 담는다
list.add(strings[i].charAt(n) + strings[i]);
}
Collections.sort(list); // 담은 list를 정렬하면 자연스레 문자열의 n번째 문자로 정렬되어 담긴다.
for (int i=0; i<list.size(); i++) {
answer[i] = list.get(i).substring(1); // list에 같이 담았던 n번째 문자를 자르고 나머지 문자열을 answer에 담는다.
}
return answer;
}
}
풀이법 )
- list를 생성하여 문자열을 list에 담을때 주어진 n번째 문자를 함께 담아준다.
- n번째 문자를 함께 담았기 때문에 list를 sort했을땐 자연스레 n번째 문자를 기준으로 담기게 된다.
- 담긴 문자열을 substring을 사용하여 담았던 n번째 문자를 잘라준다.
- 잘라준 문자열을 그대로 answer에 담고 리턴 하면 정답이 된다.
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers] Level1. 문자열 내림차순으로 배치하기 (Java) (0) | 2021.01.17 |
---|---|
[Programmers] Level1. 문자열 내 p와 y의 개수 (Java) (0) | 2021.01.16 |
[Programmers] Level1. 두 정수 사이의 합 (Java) (0) | 2021.01.12 |
[Programmers] Level1. 나누어 떨어지는 숫자 배열 (Java) (0) | 2021.01.11 |
[Programmers] Level1. 같은 숫자는 싫어 (Java) (0) | 2021.01.05 |