BOJ/백준-11296-python
문제
풀이
- 배열에 있는 수 중에서 절댓값이 가장 작은 값을 찾는 문제이므로 최소, 최대값을 찾는데 유리한
힙
,우선순위 큐
알고리즘을 활용해 구현하였다.
코드
# https://www.acmicpc.net/problem/11286
# boj, 11286: 절댓값 힙, python3
import heapq # 최소, 최댓값을 찾는 문제이므로 우선순위 큐 문제이다.
import sys
# n의 범위가 크므로 입력받는 속도를 향상시키기 위해
input = sys.stdin.readline
def solve(n: int):
# 우선순위 큐를 구현하기 위해 힙 초기화
heap = []
for _ in range(n):
num = int(input())
# x가 0이 아니라면 배열에 x 값을 추가하는 연산을 수행
if num != 0:
heapq.heappush(heap, [abs(num), num])
# x가 0이라면 배열에서 절댓값이 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 연산을 수행
else:
# 만약 배열이 비어 있는 경우이면 0을 출력
if not heap:
print(0)
else:
print(heapq.heappop(heap)[1])
if __name__ == '__main__':
n = int(input())
solve(n)
결과
출처 & 깃허브
Author And Source
이 문제에 관하여(BOJ/백준-11296-python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cosmos/BOJ백준-11296-python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)