Coding Test/Practice

백준 18870번 좌표 압축 JavaScript 풀이

yunicornlab 2024. 7. 20. 17:44
반응형

백준 18870번 좌표 압축 문제를 자바스크립트로 풀어보았다.

https://www.acmicpc.net/problem/18870

 

실패

처음 작성한 코드인데, 시간 초과로 실패ㅠ

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

let n = Number(input[0])
let origin = input[1].split(' ').map(Number);
let sorted = input[1].split(' ').map(Number).sort((a, b) => a - b);

let answer = "";
for (let i=0; i<n; i++) {
  answer += sorted.indexOf(origin[i]) + " "
};
console.log(answer)

 

성공

다시 작성해서 통과한 코드다.

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

let n = Number(input[0]);
let origin = input[1].split(' ').map(Number);

let sorted = [...new Set(origin)].sort((a, b) => a - b);
let sortedObj = {};
for (let i=0; i<sorted.length; i++) {
  sortedObj[sorted[i]] = i;
}

let answer = "";
for (let i=0; i<n; i++) {
  answer += sortedObj[origin[i]] + " ";
}
console.log(answer)
반응형