본문 바로가기

전체 글400

멀리 뛰기 첫번째 코드 def solution(n):          count = 1     down = 1          for i in range(1, int(n/2)+1):         up = 1         for j in range(i):             up *= (n-i-j)         down *= i         count += up/down             answer = count % 1234567     return answer 오류....두번째 코드 손으로 하나하나 써가다가 피보나치 같은 특성을 갖고 있음을 알았다.ap[i] = ap[i-1] + ap[i-2] 이렇게 단순한 특성이 있는데...나는 왜...;; def solution(n):          ap = [.. 2024. 5. 28.
033 카드 정렬하기 첫번째 코드 그리디 알고리즘을 이용하여 풀자!! 그리디 알고리즘을 queue를 이용해서 푸는 경우가 대부분이다! 그러므로 이 문제는 queue를 이용하자! 사실 처음에는 큐를 만들고 고민을 했다... 생각해보니까 이전에 PriorityQueue를 쓰면 알아서 정렬 된다는 것을 배웠었잖아!! 근뎅....queue와 PriorityQueue의 사용되는 함수들이 다르다는 것을 알았다.... 그래서 책을 참고해서 작성했다! import sys input = sys.stdin.readline from queue import PriorityQueue n = int(input()) queue = PriorityQueue() for i in range(n): queue.put(int(input())) a = 0 b =.. 2024. 5. 28.
Maximum Product of Two Elements in an Array 첫번째 코드 굳이 answer이라는 리스트를 만들지 말고 Max값을 비교해가면서 Max 값만을 갖고 움직이자! class Solution:     def maxProduct(self, nums: List[int]) -> int:         Max = 0                  for i in range(len(nums)):             for j in nums[i+1:]:                 Max = max(Max, (nums[i]-1)*(j-1))                  return Max 통과!링크https://github.com/ornni/leetcode/tree/main/1464-maximum-product-of-two-elements-in-an-array l.. 2024. 5. 27.
그리디 알고리즘 그리디 알고리즘 Greedy 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘 과정 1. 해 선택: 현재 상태에서 가장 최선이라고 생각되는 해를 선택 2. 적절성 검사: 현재 선택한 해가 전체 문제의 제약 조건에 벗어나지 않는지 검사 3. 해 검사: 현재까지 선택한 해 집합이 전체 문제를 해결할 수 있는지 검사. 만약 해결하지 못한다면 1로 돌아가 다시 검사 2024. 5. 26.
Regression with a Flood Prediction Dataset directory 확인 0. import library필요 라이브러리 불러오기1. load data데이터 불러오기2. data preprocessing2-1. data check - 각 변수 의미 확인'id' ID 'MonsoonIntensity' 몬순강도 'TopographyDrainage' 지형배수 'RiverManagement' 하천관리 'Deforestation' 삼림벌채 'Urbanization' 도시화 'ClimateChange' 기후 변화 'DamsQuality' 댐 퀄리티 'Siltation' 침묵(?)'AgriculturalPractices' 농업 관행 'Encroachments' 침략 'IneffectiveDisasterPreparedness' 비효과적인 재해 대비 'DrainageSy.. 2024. 5. 25.
더 맵게 첫번째 코드 prioirty queue를 이용해서 정렬한 후 맨 앞과 그 다음을 뽑은 후 계산해서 넣는 과정을 반복해서 계산하도록 하였다. from queue import PriorityQueue def solution(scoville, K):     prioirty = PriorityQueue()     count = 0     for i in scoville:         prioirty.put(i)     while not prioirty.empty() and prioirty.queue[0]         least = prioirty.get()         if least >= K:             continue         else:             mixed = prioirt.. 2024. 5. 25.
728x90