백준 알고리즘 문제를 풀며 key-value 생성 방법을 메모하기 위해 작성하였습니다.
https://www.acmicpc.net/problem/18870
18870번: 좌표 압축
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌
www.acmicpc.net
기존에 알던 방식으로 제출하였을 경우 시간초과 문제가 발생하여 이를 해결하기 위해 인덱스를 key - value 값으로
지정하여 시간초과 문제를 해결하였습니다.
const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split('\n');
const [n, x] = input;
let arr = x.split(' ');
let result = [];
let set = [...new Set(tt)].sort((a, b) => a - b);
let answer = '';
for(let i=0; i<n; i++){
if(set.indexOf(arr[i]) === 0){
result.push(0);
}else{
result.push(set.indexOf(arr[i]));
}
answer += result[i] + ' ';
}
console.log(answer);
key-value 값을 저장하기 위한 객체를 생성한 후 forEach()를 통한 반복문으로 정렬된 set 배열의 각 요소에 해당되는
value 값을 생성해주었습니다.
const set = [...new Set(arr)].sort((a, b) => a - b); // [ '-10', '-9', '2', '4' ]
let obj = {};
set.forEach((item, index) => obj[item] = index);
이상으로 forEach()를 사용하여 key-value 생성하기위한 방법을 정리해보았습니다.
감사합니다.
'React, JavaScript' 카테고리의 다른 글
[Javascript] 문자열 잘라주기 substr(), substring(), slice() (0) | 2022.09.28 |
---|---|
[JavaScript] Set 객체 (0) | 2022.09.26 |
[JavaScript] 배열의 중복 요소 제거하기 (0) | 2022.09.13 |
[JavaScript] 숫자 배열의 최소,최대 값 구하기 (0) | 2022.09.06 |
[JavaScript] join() (0) | 2022.08.23 |