[알고리즘과 자료구조] JAVA - 문자열 내 마음대로 정렬하기

문제 설명

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.


제한 조건

strings는 길이 1 이상, 50이하인 배열입니다.

strings의 원소는 소문자 알파벳으로 이루어져 있습니다.

strings의 원소는 길이 1 이상, 100이하인 문자열입니다.

모든 strings의 원소의 길이는 n보다 큽니다.

인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.


문제풀이

- strings 배열만큼 answer 배열 길이 생성

- strings 문자열에 비교할 문자열을 가장 앞에 붙여준다 ( abc -> babc, abd -> babd )

- 붙여준 문자열로 오름차순으로 Sort

- Sort 된 strings 배열에서 1~ 마지막까지 문자열을 잘라서 answer에 넣어주면 끝!

  1. import java.util.*;
  2. class Solution {
  3. public String[] solution(String[] strings, int n) {
  4. String[] answer = new String[strings.length];
  5. for( int i=0; i < strings.length; i++) {
  6. strings[i] = strings[i].charAt(n) + strings[i];
  7. }
  8. Arrays.sort(strings);
  9. for ( int i=0; i < strings.length; i++ ){
  10. answer[i] = strings[i].substring(1);
  11. }
  12. return answer;
  13. }
  14. }



* 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
작성자 소개
초이 프로필
WrapUp 블로거

초이

반려견을 좋아하고, 차를 좋아하고, 여행을 좋아하고, 맛집을 찾아 즐기는 웹 개발자 입니다^^