목록문제 풀이 (103)
honey_pot
https://www.acmicpc.net/problem/1463 12852번과 유사한 문제 12852는 과정도 출력하는 부분이 추가되었다는 부분 말고는 같다 1을 빼는 경우 2로 나누는 경우 + 2로 나누었을때 카운트가 더 적을때 3으로 나누는 경우 + 3으로 나누었을때 카운트가 더 적을때 dp[i] 값을 갱신한다 1 2 3 4 5 6 7 8 9 n = int(input()) dp = [0]*(n+1) for i in range(2,n+1): dp[i] = dp[i-1] + 1 if i%3==0 and dp[i//3]+1
https://www.acmicpc.net/problem/2885
https://www.acmicpc.net/problem/1911 그리디 문제 각 웅덩이마다 널빤지를 놓는 시작점이 되는 now를 갱신한다 첫 웅덩이 pool[0] 의 시작점 [0][0]로 now를 초기화하고 end-now로 거리를 계산하여 널빤지 길이인 L로 나누어 나머지가 남는 경우(=추가로 1개 더 필요)와 안 남는 경우를 나누어 생각한다. now에 총 널빤지 길이를 더하는 부분을 주의 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 N,L = map(int, input().split()) pool = [list(map(int,input().split())) for _ in range(N)] pool.sort() now = pool[0][0] total = 0 for..
https://school.programmers.co.kr/learn/courses/30/lessons/43238 times 배열의 순서가 오름차순이 될 수 있게 sort() = n: high = mid elif cnt
https://school.programmers.co.kr/learn/courses/30/lessons/42627 heapq 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import heapq def solution(jobs): answer, i, now = 0,0,0 start = -1 heap = [] while i
https://school.programmers.co.kr/learn/courses/30/lessons/49189 큐를 이용한 bfs 문제 q에 있는 노드들을 방문한 뒤 가장 마지막에 남는 노드들 즉, 1에서 가장 먼 리프노드들을 출력한다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 from collections import defaultdict, deque def solution(n, edge): visited = [-1]*n dic = defaultdict(list) for e in edge: dic[e[0]].append(e[1]) dic[e[1]].append(e[0]) q = deque() q.append(1) visited[0] = 1 while q: ..
https://school.programmers.co.kr/learn/courses/30/lessons/42861 크루스칼 알고리즘 문제 정점으로 가는 비용을 오름차순으로 정렬하고 맨 처음에 있는 요소 0을 부모요소로써 route에 추가하고 시작한다 0이 이미 부모로 존재하므로 현재 노드가 route에 없다면 두번째 조건문이 작동한다 set 객체인 route에 부모노드인 cost[0], 자식노드인 cost[1]을 넣어주고 answer에 비용을 더해준다 추가된 정점은 삭제하거나 [-1,-1,-1] 같은 문제상 무의미한 값으로 바꾼다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from collections import defaultdict def solution(n, costs): an..