본문 바로가기

백준11

[python 백준 2075] N번째 큰수 📜 접근 방법 처음에는 heap에 내림차순으로 넣고 n만큼 빼면 n번째 큰수가 나오는 것을 생각하여 코드를 짰다. 하지만 메모리 오류 발생했다. heap안에 원소의 갯수를 제한시켜서 갯수가 n개 이상이면 현재 넣어야할 원소와 heap안에 있는 제일 작은 수를 비교한다. 현재 넣을 원소가 크다면 heap[0](가장 작은 수)에 있는 수를 pop하고 집어넣는다. 아닐경우 넘어간다. ❌ 실패 코드 메모리 오류 from heapq import heappush, heappop import sys input = sys.stdin.readline n = int(input()) heap = [] for i in range(n): tmp = list(map(int, input().split())) for num in t.. 2023. 5. 2.
[python 백준 16953] A->B 📜 접근 방법 역으로 B에서 시작해서 A를 만들수 있는지 확인하는 방식으로 짰다. ❌ 실패 코드 45%정도에서 틀렸다고 했는데 else 부분에선 맨 뒤에 숫자가 1 뿐만아니라 홀수인 수들이 다 들어가서 나는 오류였다. s, e = map(int, input().split()) cnt = 1 while s < e: if e % 2 == 0: e //= 2 else: e //= 10 cnt += 1 if s == e: print(cnt) else: print(-1) ✅ 정답 코드 s, e = map(int, input().split()) cnt = 1 while s < e: if e % 2 == 0: e /= 2 cnt += 1 elif e % 10 == 1: e //= 10 cnt += 1 else: br.. 2023. 4. 12.
[python] 재귀시 런타임 에러 파이썬은 재귀호출을 최대 1000번까지 할수 있다. 확인 방법 >>> import sys >>> sys.getrecursionlimit() 1000 그로 인해 그 이상의 재귀호출은 런타임 에러를 일으킨다. 해결 방법 >>> import sys >>> sys.setrecursionlimit(3000) # 최대 재귀호출 횟수를 3000으로 늘림 재귀호출을 늘린다. 출처 : https://dojang.io/mod/page/view.php?id=2358 2023. 4. 11.
[python 백준 2109] 순회강연 📜 접근 방법 우선순위 큐 사용 날짜를 기준으로 오름차순 정렬을 한다. 최소 힙을 이용하여 금액을 기준으로 넣어준다. 만약 방금 넣어준 날짜가 heap의 길이를 비교한다. (day가 기한이기에 그 기한보다 heap에 있는 길이가 크면 기간안에 할수없음!) 날짜가 heap의 길이보다 크면 pop (금액이 작은 값을 pop) heap에 들어있는 금액을 전부 더한다. ❌ 실패 코드 import sys n = int(sys.stdin.readline()) lecture = [list(map(int, sys.stdin.readline().split())) for i in range(n)] lecture.sort(key=lambda x: x[1]) deadline = lecture[n - 1][1] i = n - .. 2023. 4. 9.