미누에요
[백준 1181번] 단어 정렬 (JavaScript) 본문
728x90
반응형
SMALL
문자열을 받아와서, 첫 번째 문자를 제외한 단어들을 가지고 sort() 함수를 얼마나 잘 활용하느냐의 문제인 거 같다.
나는 중복 제거를 위해 JavaScript의 sort() 함수를 사용했고, 기본적으로 sort()에서 알파벳 사전순 정렬을 지원하기 때문에 처음에는 길이를 가지고 비교하되, 길이가 같다면 defaultSort()를 사용하여 사전순으로 정렬되게 했다.
중복 제거는 Set()을 사용하여 해결했다.
소스 코드
const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
function defaultSort(a, b) {
return a.localeCompare(b);
}
function compareByLength(a, b) {
if (a.length > b.length) {
return 1;
} else if (a.length == b.length) {
return defaultSort(a, b);
} else {
return -1;
}
}
const words = input.slice(1).filter((word) => word.trim() !== '');
const uniqueArr = Array.from(new Set(words));
uniqueArr.sort(compareByLength);
uniqueArr.forEach((word) => {
console.log(word);
});
728x90
반응형
LIST
'알고리즘' 카테고리의 다른 글
[백준 7568번] 덩치 (JavaScript) (0) | 2025.01.08 |
---|---|
[백준 1436번] 영화감독 숌 (JavaScript) (0) | 2025.01.04 |
[백준 4153번] 직각삼각형 (JavaScript) (0) | 2025.01.03 |
[백준 11720번] 숫자의 합 (JavaScript) (0) | 2025.01.02 |
[백준 2438번] 별 찍기 - 1 (JavaScript) (0) | 2025.01.02 |