[JavaScript] 백준 1138 : 한 줄로 서기
2022. 10. 6. 21:59ㆍAlgorithm/백준
level : silver 2
문제 링크 : 한 줄로 서기
1138번: 한 줄로 서기
첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다
www.acmicpc.net
My Solution
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const N = Number(input.shift());
let list = input.shift().split(' ').map(Number);
let people = [];
for(let i = N - 1; i>=0;i--)
people = people.slice(0,list[i]).concat([i+1, ...people.slice(list[i])]);
console.log(people.join(' ').trim());
풀이방법
이 문제의 핵심은 키가 큰 사람부터 차례대로 넣는 것이다.
i를 N-1부터 시작한다.
people이라는 Array에서 0부터 list[i](앞에 자신보다 더 큰 사람의 수)만큼 slice하고 i+1을 붙인다음 나머지 뒤의 배열도 붙인다.
그리고 i--를 해준다.
이 행위를 i가 0이상일때까지 한다.
느낀점
어떻게 풀어야할지 좀 고민을 했던 것 같다. 하지만 생각보다 간단히 풀렸다.
'Algorithm > 백준' 카테고리의 다른 글
[Python] 백준 1021 : 회전하는 큐 (0) | 2022.10.25 |
---|---|
[JavaScript] 백준 1038 : 감소하는 수 (0) | 2022.10.09 |
[JavaScript] 백준 1058 : 친구 (1) | 2022.09.29 |
[JavaScript] 백준 1074 : Z (1) | 2022.09.29 |
[JavaScript] 백준 11725 : 트리의 부모 찾기 (0) | 2022.09.02 |