It’s me. Right.
Hello.ENTP.World
It’s me. Right.
전체 방문자
오늘
어제
  • 분류 전체보기 (45)
    • 멋쟁이사자처럼 앱스쿨 1기 (18)
    • 2024 Apple Developer Academ.. (10)
    • 개발 with Apple (8)
    • Flutter (1)
    • 알고리즘 (4)
    • 디자인 (0)
    • 앱스토어 출시 (1)
    • 영어공부 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 회고
  • xcode cicd
  • git xcode cloud
  • xcodcloud
  • xcode cloud workflow
  • 애플디벨로퍼아카데미
  • 아키텍처
  • 알고리즘
  • swift cicd
  • git xcodecloud
  • 애플아카데미
  • 동기
  • 코딩테스트
  • 좋은 회고
  • xcode cloud 계정 권한
  • swiftUI
  • ios
  • 코테
  • xcoud cloud cicd
  • Xcode cloud
  • xcode cloud appstoreconnect
  • Xcode
  • xcode 배포 자동화
  • 협업
  • 백준
  • 개발
  • xcode 팀 계정
  • 개발자
  • git cicd
  • Apple Developer Academy

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
It’s me. Right.

Hello.ENTP.World

[백준-11279,1927] 최대힙, 최소힙 #힙
알고리즘

[백준-11279,1927] 최대힙, 최소힙 #힙

2024. 6. 11. 17:44
반응형

1. 백준-11279 최대힙, 1927 최소힙

https://www.acmicpc.net/problem/11279

https://www.acmicpc.net/problem/1927

2. 알고리즘 카테고리 : 힙


3. 나의 풀이 알고리즘(1차) : 힙

import heapq

max_heap = []
input_count = int(input())

for _ in range(input_count):
    i = int(input())
    if i == 0:
        if len(max_heap) == 0:
            print(int(i))
        else:
            print(-heapq.heappop(max_heap))
    else:
        heapq.heappush(max_heap, -i)

- 여기서 시간초과 문제가 발생하였다. N이 10^5이고, N에 대하여 heappop NlogN, heappush NlogN이기 때문에 시간 복잡도에서 문제가 없었다. 코드에 문제가 없다면 외부에서 데이터를 불러오는 과정에서 시간이 초과되는 것이라고 유추를 해볼 수 있다.

- 찾아보았더니 input() 내장함수 자체가 문자열로 변환, strip을 수행한 뒤 반환하기 때문에 느리다는 것을 알게 되었다. 따라서 sys.stdin과 readline으로 수행하도록 코드를 수정하였다.

 

나의 풀이 알고리즘(2차) : 힙

import heapq
import sys

lines = []
for line in sys.stdin:
    lines.append(line)
lines.reverse()

max_heap = []
input_count = int(lines.pop())


for _ in range(input_count):
    print(f'max_heap: {max_heap}')
    i = int(lines.pop())
    if i == 0:
        if len(max_heap) == 0:
            print(0)
        else:
            print(-heapq.heappop(max_heap))
    else:
        heapq.heappush(max_heap, -i)

 

 

반응형

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

[백준-2583] 영역 구하기 #DFS #BFS  (1) 2024.06.24
[Leetcode-42] Trapping Rain Water #투포인터  (0) 2023.12.28
[프로그래머스-42577] 전화번호목록 #해시(Hash) #트라이(Trie) #세트(Set)  (5) 2023.06.27
    '알고리즘' 카테고리의 다른 글
    • [백준-2583] 영역 구하기 #DFS #BFS
    • [Leetcode-42] Trapping Rain Water #투포인터
    • [프로그래머스-42577] 전화번호목록 #해시(Hash) #트라이(Trie) #세트(Set)
    It’s me. Right.
    It’s me. Right.
    개발자가 되고싶은 코린이의 천방지축 얼렁뚱땅 개발일기

    티스토리툴바