반응형

알고리즘 7

[자료구조] Heap

알고리즘 스터디로 프로그래머스 알고리즘 고득점 Kit Heap 문제를 풀면서, Heap에 대해서 알아보기로 함. 나동빈님의 유튜브 영상에서 Heap에 대한 간단한 개념을 살펴볼 수 있었다. https://www.youtube.com/watch?v=AjFlp951nz0 Python에서는 heapq라는 표준 라이브러리를 활용하여, heapq를 쉽게 사용할 수 있다. heapq 라이브러리에 아래와 같이 heapq 라이브러리에 대한 설명이 나와있다. python에서 구현 heap의 경우 기본적으로 minheap 형태이다. 따라서 maxheap을 사용해야 하는 경우에는 -를 붙인 tuple 형태로 데이터를 저장하면 된다. 우선순위큐를 heap을 이용하여 구현할 수 있고, 이 때 가장 시간 복잡도가 작음 . 완전 ..

알고리즘 2024.03.01

BOJ 11047번, 1463번. DP

* DP 기본 유형 백준 11047번 import sys N = int(sys.stdin.readline().rstrip()) dp = [0] * 1001 dp[1] = 1 dp[2] = 2 for i in range(3, 1001): dp[i] = dp[i-1] + dp[i-2] print(dp[N] % 10007) 백준 1463번 기존 cache 값과 새롭게 업데이트 되는 값을 비교 할 때, min 함수 사용. import sys def dp(N: int) -> int: cache = [N+1] * (N+1) cache[1] = 0 for i in range(2, N+1): if i % 3 == 0: cache[i] = min(cache[i//3] + 1, cache[i]) if i % 2 == 0:..

알고리즘 2023.01.19

BOJ 9095번

DP를 이용하는 기초문제. N = int(input()) d = [0] * 100000 def calc(x): if x == 1: return 1 # 1 elif x == 2: return 2 # 1 + 1, 2 elif x == 3: return 4 # 1 + 1 + 1, 1 + 2, 3 if d[x] != 0: return d[x] d[x] = calc(x-1) + calc(x-2) + calc(x-3) return d[x] for _ in range(N): num = int(input()) print(calc(num)) 백준허브라는 크롬 익스텐션을 사용하니, 백준 문제를 해결하면 레포지토리에 자동업로드 되게 할 수 있었다. 매우 유용한 익스텐션이다.

알고리즘 2023.01.18
반응형