Skip to content

Latest commit

 

History

History

혜은

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

프로그래머스 프린터

문제 )

  1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다.
  2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다.
  3. 그렇지 않으면 J를 인쇄합니다.

예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 된다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 아는 것이 목적이기에, 위의 예에서 C는 1번째로, A는 3번째로 인쇄된다.

해결과정) 하하 계속 고민중인데

  1. 중요도 별로 나열해 배열로 반환
  2. 원래 배열의 index가 location인 값의 위치가 1.의 배열의 어디인지 찾는다.

일단 1.을 어떻게 할것인가?

  • sort로 무작정 중요도별로 정렬해 배열반환하기 장점: 빠르게 중요도별로 배열반환가능 단점: 2는 어케 수행하니? ㅋㅋ
  • index[0]이 배열의 다른 수랑 비교했을 때 크거나 같으면, 이를 새로운 배열에 push하고 index[0]을 shift로 제거. 반면 작을 때는 index[0]을 원래 배열의 마지막 요소로 추가하고, shift로 제거. 장점: 내가 로직을 구현해서 더 정확할 거 같은 vibe 단점: 이게 맞나 싶음 ㅋ ㅋ

그럼 2.는 어떻게 할 것인가? 원래 있던 배열에서 새로운 배열로 옮겨가는데 location을 어떻게 찾아줄 수 있을까? 원래 있던 배열의 index가 location인 요소를 구조분해할당으로 변수에 담아줘서 찾을 수 있지 않을까 생각함. 근데 이게 맞는 지 모르겠다.


  1. {중요도, 인덱스 넘버}로 이루어진 객체의 배열 만들기
  2. 중요도를 기준으로 정렬시키기
  3. 인덱스 넘버가 location인 요소가 새 배열의 몇 번째 인덱스에 있는지 찾기