JAVA
알고리즘 연습 - 문자열 내 마음대로 정렬하기 - JAVA
LoveApple
2019. 1. 4. 17:16
문제
문제분석
- 다른사람들의 코드를 참고하여 알고리즘을 이해하였습니다. N번째의 문자를 빼는 것까지는 생각을 하였지만, 이후에는 어떤 방법을 사용해야하는지 생각을 하지 못했습니다. 개인적으로 LEVEL1단계에서 좀 난해한 문제가 아니였다 생각합니다.
코드
프로그래머스
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
ArrayList<String> list = new ArrayList<String>();
for(int i=0;i<strings.length;i++) {
list.add(strings[i].charAt(n)+strings[i]);
}
Collections.sort(list);
String[] answer = new String[list.size()];
for(int j=0;j<answer.length;j++) {
answer[j] = list.get(j).substring(1);
}
return answer;
}
}
|
cs |
1. 뺀 문자에 대한것은 리스트에 보관하였습니다.
그리고 charAt메소드를 이용하여 n번째 문자와 기존의 문자와 더해주었습니다.
2. 배열에서는 정렬하는 메소드는 Arrays.sort()이지만, 리스트에서는 Collections.sort()메소드를 이용해야합니다.
3. 다음은 list.size()만큼의 배열을 만들어 준 후, .substring(1)을 이용하여 2번째 문자 이후부터 문자열을 배열에 저장해줍니다.
Eclipse
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
|
import java.util.*;
public class solution {
public static void main(String[] args) {
String[] strings = {"abce","abcd","cdx"};
int n = 2;
ArrayList<String> list = new ArrayList<String>();
for(int i=0;i<strings.length;i++) {
list.add(strings[i].charAt(n)+strings[i]);
}
Collections.sort(list);
String[] answer = new String[list.size()];
for(int j=0;j<answer.length;j++) {
answer[j] = list.get(j).substring(1);
System.out.println(answer[j]);
}
}
}
|
cs |
github.com