본문 바로가기

전체 글147

[프로그래머스] 섬 연결하기 programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 크루스칼 알고리즘 def solution(n, costs): parents=[0]*n for i in range(n): parents[i]=i costs.sort(key=lambda x:x[2]) total_cost=0 def find_parent(x): if parents[x]!=x: parents[x]=find_parent(parents[x]) return parents[x] def union(a,b): p_a=find_parent(a) p_b=find_parent(b).. 2021. 4. 30.
[프로그래머스] 단속카메라 programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr def solution(routes): answer=0 routes.sort(key=lambda x : x[1]) camera=-30001 for route in routes: if camera 2021. 4. 28.
[프로그래머스] 가장 먼 노드 programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr from collections import deque def solution(n, edges): visited=[False]*(n+1) answer=[int(1e9)]*(n+1) info=[[] for _ in range(n+1)] for edge in edges: info[edge[0]].append(edge[1]) info[edge[1]].append(edge[0]) def bfs(v): q=deque() count=1 visited[v]=T.. 2021. 4. 28.
[프로그래머스] 정수삼각형 programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr def solution(triangle): len_t=len(triangle) d=[] for i in range(len_t): t=[0]*len(triangle[i]) d.append(t) d[0][0]=triangle[0][0] for i in range(1,len_t): for j in range(len(triangle[i])): if j==0: d[i][j]=d[i-1][j]+triangle[i][j] elif j==len(triangle[i].. 2021. 4. 27.
[프로그래머스] 디스크 컨트롤러 programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr import heapq def solution(jobs): answer=0 time=0 last_start=-1 count=0 q=[] jobs.sort() while count 2021. 4. 20.
[프로그래머스] 단어 변환 programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr ans=10000 def dfs(count, now, target, words, history): global ans if now == target: ans=min(ans, count) return else: if len(history)==len(words): return else: pos_word=[] for word in word.. 2021. 4. 19.