https://www.acmicpc.net/problem/10867
- 사용언어 : node.js
- 알고리즘 : 정렬
- Solved.ac Tier : Silver V
node.js 코드
1. 문제 정리
2줄의 입력을 받는다. 첫 번째 줄은 정수 N, 두 번째 줄은 N개의 정수들이 주어진다.
말 그대로 중복 빼고 정렬하면 된다. 값이 1 2 3 2 3 1로 들어온다면 중복된 수를 빼고 오름차순으로, 1 2 3 출력해주면 되는 문제이다.
이 문제는 정렬이 중요한 것이 아니라, 개수를 10만개까지 주는데 모든 값들을 배열에 넣고, 중복된 값이 있는지 전부 탐색하는 것은 시간 초과에 걸릴 것 같아. Set을 사용하여 탐색해주었다. 따라서 탐색하는 데 걸리는 시간을 O(1)로 만들어 주었다.
2. 완성 코드
const filePath = process.platform === 'linux' ? '/dev/stdin' : 'ans.txt';
const [, inputs] = require('fs').readFileSync(filePath).toString().trim().split("\n");
let ans = new Set();
inputs.split(" ").map((value)=>{
ans.has(value) ? ()=>{} : ans.add(value);
})
console.log(Array.from(ans).sort((a, b)=> a-b).join(" "));
'백준 알고리즘 > Lang-node.js' 카테고리의 다른 글
[백준/node.js] 11656 접미사 배열 (0) | 2023.01.04 |
---|---|
[백준/node.js] 10816 숫자 카드 2 (0) | 2023.01.04 |
[백준/node.js] 10815 숫자카드 (0) | 2023.01.02 |
[백준/node.js] 1012번 유기농 배추 (0) | 2022.04.12 |
[백준/node.js] 11724번 연결 요소의 개수 (0) | 2022.04.12 |