https://github.com/Dev-Guccin
Guccin
https://github.com/Dev-Guccin
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 알고리즘 (140)
    • 삽질방지 (13)
    • SystemHacking (1)
    • 일상 (4)
    • 개발 (8)
    • 스프링 부트 REST API 개발일지 (5)
    • JPA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 이분탐색
  • heapq
  • 최소힙
  • 프로그래머스
  • 큐
  • 최대공약수
  • Python
  • LIS
  • counter
  • 재귀
  • 다익스트라
  • BFS
  • 이분 탐색
  • DP
  • 다이나믹프로그래밍
  • 최단경로
  • MST
  • 12015
  • 백준
  • 백트래킹
  • 다이나믹 프로그래밍
  • 유클리드호제법
  • 유니온 파인드
  • 그래프
  • 파이썬
  • python3
  • 재귀함수
  • 스택
  • 그리디
  • DFS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
https://github.com/Dev-Guccin

Guccin

알고리즘

백준 11286 풀이 (절댓값 힙, 최소 힙, heapq)

2021. 3. 29. 19:47

이번 문제는 새로운 기준으로 우선순위 큐를 만드는 문제였다. 

힙에 값이 존재할때 절댓값을 기준으로 가장 작은 값을 뽑는다. 만약 절대값이 같은 수가 있다면 그중 가장 작은 수를 뽑는다.

처음에는 힙이 미리 값을 넣어놓은 상태에서 힙을 어떻게 탐색해야할지 고민을 했다.

그런데 생각해 보니, 애초에 절댓값과 실제 값을 같이 넣어도 되지 않을까 라는 생각을 하게 되었다.

그래서 절댓값과 실제값을 튜플로 넣고 출력하면 되지 않을까 싶었다.

import sys
import heapq

n = int(input())
heap=[]
for _ in range(n):
    t = int(sys.stdin.readline())
    
    if t == 0:
        if len(heap) == 0:
            print(0)
        else:
            print(heapq.heappop(heap)[1])
    else:
        heapq.heappush(heap, (abs(t),t))

'알고리즘' 카테고리의 다른 글

백준 11066 풀이 (파일 합치기, DP, Knuth Optimization)  (0) 2021.04.23
백준 1655 풀이 (가운데를 말해요, 우선순위 큐)  (0) 2021.03.29
백준 11279 풀이 (최대 힙, 우선순위 큐, heapq)  (0) 2021.03.29
백준 12015 풀이 (가장 긴 증가하는 부분 수열 2, LIS, 이분탐색)  (0) 2021.03.26
백준 1300 풀이 (k번째 수, 이분 탐색)  (0) 2021.03.25
    '알고리즘' 카테고리의 다른 글
    • 백준 11066 풀이 (파일 합치기, DP, Knuth Optimization)
    • 백준 1655 풀이 (가운데를 말해요, 우선순위 큐)
    • 백준 11279 풀이 (최대 힙, 우선순위 큐, heapq)
    • 백준 12015 풀이 (가장 긴 증가하는 부분 수열 2, LIS, 이분탐색)
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바