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

이준경·2021년 5월 12일
0

<나의풀이>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.*;
 
class Solution {
    public String[] solution(String[] strings, int n) {
        String[] answer = new String[strings.length];       
        int k=0;
        for(int i='a'; i<='z'; i++){
            int y=0;
            for(int j=0; j<strings.length; j++){
                if(strings[j].charAt(n)==(char)i){
                    y++;
                }
            }
            if(y!=0){
                String[] s = new String[y];
                y=0;
                for(int j=0; j<strings.length; j++){
                    if(strings[j].charAt(n)==(char)i){
                        s[y++]=strings[j];
                    }
                }
 
                Arrays.sort(s);
                for(int j=0; j<s.length; j++){
                    answer[k++]=s[j];
                }
            }
            
        }
        return answer;
    }
}
cs
  1. 정해진 n번째 문자가 현재 i와 같을 경우 y증가.
  2. y가 0이 아닐때 y만큼의 배열 가진 s 생성.
  3. 정해진 n번째 문자가 i와 같을 때 s에 대입
  4. s정렬후 answer에 차례대로 대입.
  5. 반복 후 answer 반환

<다른사람풀이>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.*;
 
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, arr.get(i).length());
        }
        return answer;
    }
}
cs
  1. n번째 문자를 현재 문자열의 맨앞에 더한뒤 list에 대입
  2. Collection으로 정렬 후 순서대로 앞글자만 빼서 answer에 대입 후 반환

0개의 댓글

관련 채용 정보