문자열 내 마음대로 정렬하기

김나영·2023년 6월 21일
0

프로그래머스

목록 보기
38/39

문제 : 문자열 내 마음대로 정렬하기

풀이

String[] answer = new String[strings.length];
  • 문자열로 구성된 리스트 strings의 길이만큼 새로운 String 배열 answer을 선언
ArrayList <String> arr = new ArrayList<>();
  • String 타입의 새로운 List 생성
for(int i = 0; i < strings.length; i++){
   arr.add(strings[i].charAt(n)+ strings[i]);
}
  • 첫 글자를 index의 요소, string의 요소를 합친 값으로 list에 저장
String[] arr2 = new String[arr.size()];
  • 배열의 크기만큼 새로운 String 배열 생성
for(int i = 0; i < arr2.length; i++){
   arr2[i] = arr.get(i);
}
  • 인덱스 i의 문자가 같은 문자열일 경우 제거
Arrays.sort(arr2);
  • 배열을 정렬
for (int i = 0; i < arr2.length; i++) {
    answer[i] = arr2[i].substring(1);
}
  • 새로 선언한 배열의 길이만큼 순회

  • answer 배열에 substring() 메소드를 사용하여 첫 글자를 제외한 문자를 저장

전체 코드

import java.util.*;
class Solution {
    public String[] solution(String[] strings, int n) {
        String[] answer = new String[strings.length];
        //2.
        // 각 단어마다 n번째부터 자른 값을 넣어서 배열에 삽입
        ArrayList <String> arr = new ArrayList<>();
        for(int i = 0; i < strings.length; i++){
            arr.add(strings[i].charAt(n)+ strings[i]);
            // arr = {"babc", "bab"}
        }
        String[] arr2 = new String[arr.size()];
        for(int i = 0; i < arr2.length; i++){
            arr2[i] = arr.get(i);
        }
        Arrays.sort(arr2);
        for (int i = 0; i < arr2.length; i++) {
            answer[i] = arr2[i].substring(1);
        }
        return answer;
    }
}

0개의 댓글