문제 )
- 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다.
- 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다.
- 그렇지 않으면 J를 인쇄합니다.
예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 된다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 아는 것이 목적이기에, 위의 예에서 C는 1번째로, A는 3번째로 인쇄된다.
해결과정) 하하 계속 고민중인데
- 중요도 별로 나열해 배열로 반환
- 원래 배열의 index가 location인 값의 위치가 1.의 배열의 어디인지 찾는다.
일단 1.을 어떻게 할것인가?
- sort로 무작정 중요도별로 정렬해 배열반환하기 장점: 빠르게 중요도별로 배열반환가능 단점: 2는 어케 수행하니? ㅋㅋ
- index[0]이 배열의 다른 수랑 비교했을 때 크거나 같으면, 이를 새로운 배열에 push하고 index[0]을 shift로 제거. 반면 작을 때는 index[0]을 원래 배열의 마지막 요소로 추가하고, shift로 제거. 장점: 내가 로직을 구현해서 더 정확할 거 같은 vibe 단점: 이게 맞나 싶음 ㅋ ㅋ
그럼 2.는 어떻게 할 것인가? 원래 있던 배열에서 새로운 배열로 옮겨가는데 location을 어떻게 찾아줄 수 있을까? 원래 있던 배열의 index가 location인 요소를 구조분해할당으로 변수에 담아줘서 찾을 수 있지 않을까 생각함. 근데 이게 맞는 지 모르겠다.
- {중요도, 인덱스 넘버}로 이루어진 객체의 배열 만들기
- 중요도를 기준으로 정렬시키기
- 인덱스 넘버가 location인 요소가 새 배열의 몇 번째 인덱스에 있는지 찾기