반응형
SMALL
https://programmers.co.kr/learn/courses/30/lessons/12915
- 문제 풀이 핵심
- 단어들 앞에 n번째 문자를 붙여준 뒤 정렬시키기
- 문자 떼고 답변 배열에 넣기
- charAt(n)
- 문자열의 n번째 문자 추출 (0부터 시작)
- str1.compareTo(str2)
- 문자열 2개 비교
- 둘이 같으면 0 반환
- str1이 더 크면 양수 반환
- str1이 더 작으면 음수 반환
- 문자열을 사전적으로 비교함!
- A < B
- 두 문자열의 길이가 같은데 글자가 다르면?
- 처음으로 달라지는 부분의 문자열간의 거리 간격을 음수로 반환
- 예를들어 A 와 C이면 -2 반환
- 처음으로 달라지는 부분의 문자열간의 거리 간격을 음수로 반환
- 두 문자열이 앞에서부터 같은데 길이가 다른 글자라면? (뒷부분이 다름)
- 길이 차이를 반환함
- 예를들어 AB 와 ABCD 이면 -2 반환
- 길이 차이를 반환함
- 문자열 2개 비교
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
ArrayList<String> arrayList = new ArrayList<>();
// 단어의 n번째 문자열을 단어의 맨 앞에 붙여준다
for(int i = 0; i < strings.length; i++) {
arrayList.add(strings[i].charAt(n) + strings[i]);
}
// 그러고나서 리스트의 문자열들을 오름차순 정렬시킨다
Collections.sort(arrayList);
// 리스트를 배열로 변환
String[] answer = new String[arrayList.size()]; // 단어들이 들어있는 배열의 크기만큼 답변 배열도 같으므로
// 맨 앞에 붙여진 문자를 떼고 답변 배열에 넣어준다
for(int i = 0; i < arrayList.size(); i++) {
answer[i] = arrayList.get(i).substring(1); // 0번 빼고 1부터 끝까지
}
return answer;
}
}
반응형
LIST
'JAVA > Algorithm' 카테고리의 다른 글
[프로그래머스/java] 문자열 내림차순으로 배치하기 (0) | 2020.12.01 |
---|---|
[프로그래머스/java] 문자열 내 p와 y의 개수 (0) | 2020.12.01 |
[프로그래머스/java] 두 정수 사이의 합 (0) | 2020.10.24 |
[프로그래머스/java] 나누어 떨어지는 숫자 배열 (0) | 2020.10.24 |
[프로그래머스/java] 같은 숫자는 싫어 (0) | 2020.10.23 |