목록분류 전체보기 (157)
DevYoon
link 🔗 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpFQaAQMDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1️⃣ DFS 사용 → 매개변수로 달(month)와 요금합계 사용 2️⃣ 1일 요금제 사용했을 때, 1달 요금제 사용했을 때, 3달 요금제 사용했을 때, 1년 요금제 사용했을 때 3️⃣ Min = 1년 요금제 def dfs(month, sums): global cost, Min if month > 11: if Min > sums: Min = sums return dfs(month+1, ..
link 🔗 https://swexpertacademy.com/main/code/userProblem/userProblemDetail.do?contestProbId=AX_Pn1I6fBQDFARi SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1️⃣ BFS 사용 2️⃣ for문 → A나 B 발견 → BFS 돌리기 3️⃣ BFS 끝나면 Max와 개체의 크기 비교 → Max 갱신 from collections import deque def bfs(y, x): global Max q = deque() q.append((y, x)) # y, x, 크기 char = arr[y][x] cnt = 1 while q: now..
DAT의 문제점(음수, 문자 등 인덱스로 활용하기 불가능하거나 메모리 손해인 경우)를 보완할 수 있는 해시 알고리즘 보안에 사용하는 방식이 너무 흥미롭다...✨ keyword : 빠른 검색, DAT의 단점 보완
link 🔗 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 힙 배우고 호기롭게 풀기에 도전했으나 정확성 테스트는 다 맞았는데 효율성은 다 틀렸다🥲 효율성 그게 뭔데...!! 흑 ㅠㅠ 일단 정확성 다 맞은 코드... 좀 더 공부해서 효율성도 다 통과하겠어...🥲 import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) w..
Heap을 사용하여 우선순위 큐 알고리즘을 공부해봅시다~~~✏️ 1️⃣ 기본 : heapq를 사용하면 Minheap이 디폴트이다! heap에서 코드로 구현했던 루트노드의 값을 출력하고, 맨 마지막에 있는 값을 최상단으로 올려 정렬하는 과정은 heappop()을 활용한다. import heapq arr = [] # insert, Minheap이 디폴트 heapq.heappush(arr, 4) heapq.heappush(arr, 1) heapq.heappush(arr, 3) heapq.heappush(arr, 9) heapq.heappush(arr, 6) # 1 4 3 9 6 # heapq.heappop(arr) -> top() and pop() print(heapq.heappop(arr)) # 1 prin..
1️⃣ 우선순위 큐(Priority Queue)의 원리 2️⃣ 완벽한 이진트리의 형태 3️⃣ 시간 복잡도 O(nlogn) Keyword : Maxheap(부모노드 > 자식노드), Minheap(부모노드 < 자식노드) 하나씩 꺼낼 때마다 부모 노드와 비교하여 Maxheap이면 → 부모 노드보다 자식 노드가 크면 swap Minheap이면 → 부모 노드보다 자식 노드가 작으면 swap 코드 구현 arr = [4,7,8,1,5,3,6,9] # Maxheap heap = [0]*20 hindex = 1 # 힙이라는 1차 배열의 인덱스 역할 def insert(value): global heap, hindex heap[hindex] = value now = hindex hindex+=1 while 1: paren..
Dijkstra 알고리즘 Dijkstra 알고리즘이란? 1️⃣ 한 정점에서 다른 모든 도착점까지 드는 최소 비용 or 최단 거리를 구할 때 사용하는 알고리즘 2️⃣ BFS, DFS보다 효율성을 높이고 빠른 속도를 위해 사용 3️⃣ 한 점에서 다른 점까지의 비용에 양수만 존재해야 함. (음수 → Bellmanford) 4️⃣ 양방향, 단방향 모두 가능 Keyword 시작 → 도착 vs 시작 → 경유지 → 도착 비교 후 더 작은 것으로 갱신 코드 구현 name = 'ABCED' inf = 99999 arr = [[0, 3, inf, 9, 5], [inf, 0, 7, inf, 1], [inf, inf, 0, 1, inf], [inf, inf, inf, 0, inf], [inf, inf, 1, i..