https://school.programmers.co.kr/learn/courses/30/lessons/12915
프로그래머스 문자열 내 마음대로 정렬하기 문제 링크입니다.
핵심
이 문제에서 핵심은 정렬을 하는데, 문자열에서 원하는 index의 문자를 비교하여 정렬해야 한다.
정답 코드
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = {};
List<String> list = new ArrayList<>();
for(int i=0; i< strings.length; i++) {
list.add(strings[i].charAt(n) + strings[i]);
}
Collections.sort(list);
answer = new String[list.size()];
for(int i=0; i<list.size(); i++) {
answer[i] = list.get(i).substring(1);
}
return answer;
}
}
해설
List를 선언하는데, 이때 list에 들어가는 값은 우리가 원하는 index + 기존 문자열이다.
이렇게 list에 넣는 이유는 기존에 있는 Collections.sort를 사용하기 위함이다.
이후 추가된 list를 정렬한다.
그리고 반환할 배열 값에 처음 비교를 위해 쓰인 문자열의 index 값은 제거한다.
제거할 때는 substring메서드를 사용하는데, 이는 우리가 넣는 값 이후만 반환해준다.
즉 코드에서 보면 1을 넣었으므로 ex) abc -> bc로 반환된다.
개선점이나 오류가 있다면 댓글 부탁드립니다.
'PS > 알고리즘 문제풀이' 카테고리의 다른 글
*재귀함수* inequal (1) | 2022.10.23 |
---|---|
[프로그래머스]2018 카카오 블라인드 공채, [1차]비밀지도(java) (0) | 2022.10.14 |
[백준] 2204번 도비의 난독증 테스트(java) (0) | 2022.10.12 |
*재귀함수* division (0) | 2022.10.12 |
*String* 문자열 압축 (2) | 2022.10.09 |