[코딩테스트/프로그래머스/Python]이중우선순위큐

Enter·2021년 7월 16일
0

코딩테스트

목록 보기
12/68

💡생각

  1. for문을 이용해 operations의 모든 연산을 처리함.
  2. 문자열 첫번째에 'I'가 들어가면 인덱스로 슬라이싱해서 숫자를 리스트에 append함.
  3. 문자열이 'D 1'이면 리스트에서 max값 삭제.
  4. 문자열이 'D -1'이면 리스트에서 min값 삭제.
  5. 반복문이 끝나고 리스트가 비어있으면 [0,0]리턴, 비어있지 않으면 [최댓값, 최솟값]리턴.



💡테스트 통과한 코드

operations: 이중 우선순위 큐가 할 연산들
answer: 연산처리 결과를 넣는 리스트


operations의 문자열 첫번째가 'I'면 인덱스로 슬라이싱해서 int형으로 변환 후 리스트에 append한다.
opertaions의 문자열이 'D 1'이고 리스트가 비어있지 않으면 리스트의 최댓값 삭제한다.
opertaions의 문자열이 'D -1'이고 리스트가 비어있지 않으면 리스트의 최솟값 삭제한다.
모든 연산을 처리한 후 리스트 비어있으면 [0,0], 비어있지 않으면 [max(answer), min(answer)]리턴한다.
힙을 사용해서 풀어야하는데 너무 간단하게 생각해서 푼 것 같다.




⏬다른사람의 코드

heap을 사용해서 정석으로 푼 코드.







🔗프로그래머스 - 이중우선순위큐
https://programmers.co.kr/learn/courses/30/lessons/42628

profile
Cherish the moment :)

0개의 댓글