문제
문제 풀이
const readline = require('readline');
(async () => {
let rl = readline.createInterface({ input: process.stdin });
let input = [];
for await (const line of rl) {
input.push(line.trim());
if (input.length == 2) {
rl.close();
}
}
const N = input[0];
let numbers = new Set(input[1].split(' ').map(Number));
numbers = [...numbers];
numbers.sort((a, b) => a - b);
console.log(...numbers);
process.exit();
})();
입력으로 받아온 것을 차례대로(한 줄마다) input에 넣는다.
입력을 두줄 받아야하므로 input.length가 2이면 rl.close()을 호출하여 입력 스트림을 닫는다.
입력은 모두 문자열로 변환돼서 저장이 된다.
그 후부터는 다른 플랫폼처럼 코드를 작성하면 된다.
조건에 맞게 오름차순으로 정렬하고, 중복된걸 제거하기위해 Set을 썼다.
코드 개선 - 입력, 출력 분리
const readline = require('readline');
// 입력을 처리하는 함수
async function processInput() {
const rl = readline.createInterface({ input: process.stdin });
let input = [];
for await (const line of rl) {
input.push(line.trim());
if (input.length == 2) {
rl.close();
}
}
return input;
}
// 데이터를 처리하는 함수
function processData(input) {
const N = input[0];
let numbers = new Set(input[1].split(' ').map(Number));
numbers = [...numbers];
numbers.sort((a, b) => a - b);
console.log(...numbers);
}
// 메인 함수
(async () => {
const input = await processInput();
processData(input);
process.exit();
})();
처음 코드는 입출력이 하나로 묶여있는데 역할을 분리하는게 좋을 것 같아서 분리를 해봤다.
'코딩테스트 문제풀이 > programmers' 카테고리의 다른 글
프로그래머스 node.js - 신규 아이디 추천 (0) | 2024.06.07 |
---|---|
프로그래머스 node.js - 성격 유형 검사하기 (1) | 2024.06.06 |
프로그래머스 node.js - 키패드 누르기 (0) | 2024.06.05 |
프로그래머스 node.js - 실패율 (0) | 2024.05.29 |
프로그래머스 node.js - [1차] 비밀지도 (0) | 2024.05.27 |