알고리즘 풀이

[JAVASCRIPT] 백준 1181번 문제 풀이

Lv1_junior_dev 2022. 12. 27. 19:57

❗ 조건

조건1. 문자열의 길이가 짧은 것부터

조건2. 문자열의 길이가 같으면 사전 순으로

 

❗ 풀이

let input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n');

let setarr = [...new Set(input)];

setarr.shift();

let result = setarr.sort().sort((a, b) => a.length - b.length).join("\n");

console.log(result)

1. Set()을 이용한 중복 제거

2. shift()를 이용한 단어의 개수 값 제거

3. let result => 중복과 단어의 개수 값을 제거한 배열을 사전순으로 정렬하고 단어순으로 정렬한 후 join 한다

4. 결과 값 출력

❗ 풀이2

let input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n');

let setarr = [...new Set(input)];

setarr.shift();

let result = setarr.sort().sort((a, b) => a.length - b.length);

result.forEach((element,index,value) => {
    console.log(value[index])
});

해당 방법으로 가능하지만 forEach를 쓰니 속도가 심하게 느려지고 메모리도 많이 먹어서 비추.