2024/12/22 6

2d array: hourglassSum

2d array: hourglassSum https://signing.tistory.com/155 [HackerRank] 2D Array문제 요약하자면, 6 by 6 2차원 행렬이 주어질때, 3 by 3 사이즈의 모래시계모양의 숫자의 합들을 비교하여 가장 큰 수를 반환하는 것이다. 코드 def hourglassSum(arr): top = -90 for r in range(1,5): tmp = -90 for csigning.tistory.com https://www.hackerrank.com/challenges/2d-array/problem?isFullScreen=true 2D Array - DS | HackerRankHow to access and use 2d-arrays.www.hackerrank.com

HackerRank/공통 2024.12.22

50. Pow(x, n)

50. Pow(x, n) Time Limit Exceededclass Solution: def myPow(self, x: float, n: int) -> float: res = 1 if n>0: for i in range(1, n+1): res *= x elif n  이진 분할(분할 정복) 기법을 활용하여 효율적으로 해결할 수 있습니다. 이는 반드시 이진 트리를 명시적으로 사용하는 것은 아니지만, 개념적으로 재귀적으로 문제를 반으로 나누는 방식이 이진 트리의 구조와 유사합니다.  def myPow(x: float, n: int) -> float: # 음수 지수 처리 if n  이진 트리와의 ..

Heap-PrioiryQueue: 295. Find Median from Data Stream ★★★

295. Find Median from Data Stream https://youtu.be/itmhHWaHupI?si=QWJJw3c9WUZ0gmFN class MedianFinder: # 힙에서 데이터 추가/삭제는 O(log N) 이고, 검색은 O(1) 임 # small heap 은 max heap 으로, large heap 은 min heap 으로.. # max heap 을 pop 하면, # 가장 큰값이 추출되므로 이것을 large heap으로 바로 보낼 수 있음 # 우선 small heap 에 데이터 넣고 # 발란스가 small heap 이 더 크면, small heap 의 최대갑을 large heap 으로 넣고 # 여기서 발란스는 ..

502. IPO

502. IPO class Solution: def findMaximizedCapital(self, k: int, w: int, profits: List[int], capital: List[int]) -> int: # 1번 할때마다 k-- 감소 # w 는 현재 자본 # capital[]은 profits[] 얻기 위한 최소 요구 자본 # 그래서, 매 라운드 마다 현재 자본 w 내에서 얻을수있는 최대 profit 선택하고 # 그 profit을 w에 더하면 됨 # 그리고 w return # 이미 선택된 프로젝트의 인덱스를 추적 visited_idx = set() while k>0: ..