728x90
문자열 내 마음대로 정렬하기
https://school.programmers.co.kr/learn/courses/30/lessons/12915


풀이
객체 비교
Comparable (자기 자신 기준)
- 클래스 정렬 기준 정하고 싶을 때 사용
- 클래스 내부에 구현
- 정렬 기준 1개
- `compareTo` 메서드 사용
- -> 재정의(Override) 해야 함
class Person implements Comparable<Person> {
int age;
Person(int age) {
this.age = age;
}
@Override
public int compareTo(Person o) {
return this.age - o.age; // 나이 오름차순
}
}
Arrays.sort(persons);
-> `Arrays.sort`가 Person 안에 있는 `compareTo` 자동으로 사용
Comparator (외부 기준)
- 상황에 따라 정렬 기준 바뀔 때 or 이미 만들어진 클래스 정렬할 때 사용
- 클래스 외부에서 정의
- 정렬 기준 여러 개 가능
- `compare(a, b)` 사용
// ver1
Arrays.sort(strings, (a, b) -> a.length() - b.length());
// ver2
Comparator<String> comp = Comparator.comparingInt(String::length);
Arrays.sort(strings, comp);
a가 앞에 와야하면 음수, b가 앞에 와야 하면 양수, 같으면 0 리턴
코드
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, (a, b) -> {
if (a.charAt(n) == b.charAt(n)) {
return a.compareTo(b);
}
return a.charAt(n) - b.charAt(n);
});
return strings;
}
}728x90
반응형
'✏️ > Programmers' 카테고리의 다른 글
| [프로그래머스/Lv.1] 크레인 인형뽑기 (Java) (0) | 2026.02.08 |
|---|---|
| [프로그래머스/Lv.1] 키패드 누르기 (Java) (0) | 2026.02.04 |
| [프로그래머스/Lv.1] PCCP - 붕대 감기 (Java) (0) | 2026.02.03 |
| [프로그래머스/Lv.1] PCCP - 동영상 재생기 (Java) (0) | 2026.02.03 |
| [프로그래머스/Lv.2] 메뉴 리뉴얼 (Java) (0) | 2026.02.01 |