재귀 단계를 진짜 끝내자~
재귀 단계
피보나치 수 역시 단순 for문으로도 구할 수 있지만, 학습을 위해 재귀를 써 봅시다.
www.acmicpc.net
24060
⚠︎ 알고리즘 수업 - 병합 정렬 1
티어 : 🥈3
분류 : 재귀, 머지 소트
머지소트도 시험범위인데~잘댓다
import sys
# 머지 소트
def merge_sort(A,p,r): # 배열, 시작, 끝
if (p < r):
q = (p+r) // 2 # 반갈
merge_sort(A,p,q)
merge_sort(A,q+1,r)
merge(A,p,q,r)
def merge(A,p,q,r):
global result
global k_num
i = p
j = q + 1
tmp = []
while (i <= q and j <= r):
if (A[i] <= A[j]):
tmp.append(A[i])
i += 1
else:
tmp.append(A[j])
j += 1
while(i <= q):
tmp.append(A[i])
i += 1
while(j <= r):
tmp.append(A[j])
j += 1
i,t = p,0
while(i <= r): # 저장이 이루어지는 곳
A[i] = tmp[t]
result.append(tmp[t])
k_num += 1
i += 1
t += 1
# 배열 크기 , 저장횟수
N, K = map(int,sys.stdin.readline().split())
A = list(map(int,sys.stdin.readline().split()))
k_num = 0
result = [0]
merge_sort(A,0,N-1)
if k_num < K:
print(-1)
else :
print(result[K])
아니,,,중간에 p 하나 q로써가지고,,,,,
디버깅에아까운시간을,,,,,,,
애매하게 배열변화가 맞아가지고대체어디가틀렸나햇네
그 디버깅하는법
제대로알고써보고싶다
백날천날print찍어보기말고
재귀도 찐 끗~!
,,
다시 정통공해야지,,,,
과자사먹어야겟다
두근두근
'📊 Algorithm > BOJ' 카테고리의 다른 글
⚠︎ 백준 - 2110 공유기 설치 (0) | 2024.04.15 |
---|---|
⚠︎ 백준 - 9251 LCS (0) | 2024.04.12 |
⚠︎ 백준 - 4779 칸토어 집합🏠 (0) | 2024.04.10 |
⚠︎ 백준 - 9372 상근이의 여행 ✈️ (0) | 2024.04.10 |
⚠︎ 백준 - 6469 전력난⚡️ (0) | 2024.04.09 |