https://programmers.co.kr/learn/courses/30/lessons/12915
- 입력 받은 배열의 길이 - 1 만큼 for문을 돌려 배열들을 확인
(-1을 하는 이유는 for문 안에 if문에서 (i+1)을 하여 본인 다음 요소와 비교하여 줄껀데, 마지막 길이에서 +1을 하면 index값이 오버 되기 때문에 -1 길이까지 확인.)- if문을 통해 문자열.charAt(n)을 통해 n번째 문자를 다음 문자열.charAt(n)과 비교하여, 뒤에 문자값(아스키코드 값)이 작을 경우, 문자 요소 위치를 서로 바꿔주고, i=-1로 초기화하여 처음부터 다시 비교.
- 지정된 charAt(n)값이 다음 문자와 같을 경우 사전순으로 정렬해야 하므로 compareTo() 메서드를 통해 두 문자열의 값을 비교하여 위치를 바꿔서 사전순으로 정렬해준다.
import java.util.Arrays;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = new String[strings.length];
String temp ="";
for(int i=0; i<strings.length-1; i++) {
if((strings[i].charAt(n)) > strings[i+1].charAt(n)) {
temp = strings[i];
strings[i] = strings[i+1];
strings[i+1] = temp;
i=-1;
}
else if(strings[i].charAt(n) == strings[i+1].charAt(n)) {
if(strings[i].compareTo(strings[i+1]) > 0) {
temp = strings[i];
strings[i] = strings[i+1];
strings[i+1] = temp;
i=0;
}
}
}
return answer = strings;
}
}
Value | 의미 |
---|---|
양수 | 크다 |
0 | 같다 |
음수 | 작다 |