늒네 기록

[BOJ-JS] 9011번 - 순서 본문

알골 공부 기록/BOJ

[BOJ-JS] 9011번 - 순서

jaeha lee 2024. 3. 7. 20:06

9011번: 순서 (acmicpc.net)

 

9011번: 순서

n개의 정수로 된 순서 S= (s1, s2, ..., sn)가 있다. 여기서 si ≠ sj이고, 1 ≤ si ≤ n이다. S로부터 새로운 순서 R = (r1, r2, ..., rn)을 얻을 수 있는데, 여기서 ri는 S의 부분 순서 {s1, s2, ..., si-2, si-1} 중에서

www.acmicpc.net

이 문제와 거의 같은 코드로 풀린다. 9011번의 경우 한 케이스당 나오는 숫자 개수가 100개라서 O(n^2)으로 푸는 것에 대한 걱정을 전혀 하지 않아도 된다는 정도의 차이가 있다.

 

난이도는 기존의 다른 기여들에서 제시한 것과 같이 골5를 주었다.

a=(0+require('fs').readFileSync(0)).split`
`
for(j=0;j<+a[0];j++){
  n=+a[2*j+1]
  b=a[2*j+2].split` `.map(i=>+i)
  x=Array(n).fill(0).map((e,i)=>i+1)
  x.reverse()
  r=[]
  for(i=n-1;i>=0;i--){
    if(b[i]>=x.length)break
    y=x.length-1-b[i]
    r.push(x[y])
    x.splice(y,1)
  }
  r.reverse()
  console.log(i==-1?r.join` `:'IMPOSSIBLE')
}
반응형

'알골 공부 기록 > BOJ' 카테고리의 다른 글

[BOJ-JS] 1274번 - 커피숍1  (0) 2024.03.09
[BOJ-JS] 12844번 - XOR  (0) 2024.03.08
[BOJ-JS] 8120번 - Coding of Permutations  (0) 2024.03.06
[BOJ-JS] 6213번 - Balanced Lineup  (1) 2024.03.05
[BOJ-JS] 1008번 - A/B  (0) 2023.07.29
Comments