Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- HTTP/2.0
- 운동
- 코딩테스트
- Nginx개념
- 취준생
- 자바스크립트
- IT
- 프론트엔드
- 컴퓨터공학과
- 도커 컨테이너
- Nginx
- docker
- gunicorn
- Jupyter notebook
- CS기술면접
- HTTP/1.0
- Python
- 도커명령어
- HTTP/3.0
- CS
- HTTP버전
- JavsScript
- 도커기본개념
- HTTP/0.9
- Javascript
- 컴퓨공학과
- HTTP
- http 메소드
- 헬스
- 백준
Archives
- Today
- Total
dogo_ day
JavaScript 코딩테스트 11. 문제(백준 10814번) 본문
🔅알고리즘 난이도 Lv. 2
🌈문제풀이
Map객체를 사용할 수 있다면 쉽게 문제를 해결 할 수 있다.
이름의 중복이 없다는 가정하에 이름-가입순서로 Map을 생성한다.
그리고 sort를 사용하여 정렬을 할 때 나이가 같다면 Map객체에서 가입순서를 가지고와서 정렬의 기준으로 삼는다.
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let n = Number(input[0]);
let client = [];
for(let i = 1; i <= n; i++){
let temp = input[i].split(' ');
client.push(temp);
}
// 가입순서를 확인하기위해 이름과 가입순서로 map 생성
// 이름의 중복이 없다는 가정하에
let joinMap = new Map();
for(let i = 0; i < n; i++){
joinMap.set(client[i], i);
}
// 나이가 같다면 가입순서로 정렬
client.sort((a, b) => {
if(a[0] != b[0]) return a[0] - b[0]
else return joinMap.get(a[1]) - joinMap.get(b[1]);
});
let result = '';
for(const x of client)
result += x[0] + ' ' + x[1] + '\n';
console.log(result);
'IT > 코딩테스트_' 카테고리의 다른 글
JavaScript 코딩테스트 10. 문제(백준 18870번) (0) | 2023.05.07 |
---|---|
JavaScript 코딩테스트 9. 문제(백준 11650번) (0) | 2023.05.03 |
JavaScript 코딩테스트 8. 문제(백준 2675번) (0) | 2023.04.29 |
JavaScript 코딩테스트 7. 문제(백준 11720번) (0) | 2023.04.29 |
JavaScript 코딩테스트 6. 문제(백준 3052번) (0) | 2023.04.29 |