BOJ 1181
단어를 정렬하는 문제다. 그런데 조건이 하나가 아니고 두개다..
제출하고 난뒤에 확인해보니, 나보다 효율적으로 푸신 분들이 많아서 보고 배울점이 제법 있었다.
일단 내가 푼 방법은 다음과 같다.
1) wordList라는 ArrayList를 만들고, input값이 이미 wordList에 있는 경우 삽입하지 않음.
2) wordList 내부에 있는 값들을 비교하기 위한 Comparator을 한개 만들고, 조건을 지정
Comparator<String> wordSort = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if(o1.length() == o2.length()) {
return o1.compareTo(o2);
} else {
return o1.length() - o2.length();
}
}
};
length가 같으면 서로간의 알파벳 서열을 비교하고, length가 같지 않으면 서로간의 길이 서열을 비교하는 식으로 만들어줬다.
이후에 Collections.sort(wordList, wordSort)
이런 식으로 정렬을 해준 뒤 출력해주면 완료.