[LV2] 프로그래머스 문제풀이 섬 연결하기
https://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 해당 문제는 프림 알고리즘과 크루스칼 알고리즘을 활용하여 해결할 수 있다. 먼저 프림 알고리즘을 살펴보자 # 프림 알고리즘 import heapq as hq def solution(n, costs): graph = {} # 직전 노드 - 방문 노드 체크에도 사용 pi = {} # 해당 노드에 접근하는데 필요한 비용 - 다익스트라에서는 시작점에서 해당 점으로의 거리로 변경 d = {} answer = 0 # 프림 알고리즘은 지도를 만들어준다. for f, t, ..
[LV1] K번째 수 Python
https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 내가 제일 좋아하는 문제다. 파이썬 리스트 인덱싱 및 슬라이싱의 정수를 보여준다. 추가로 함수형 프로그래밍도~! 한 5번 정도 반복해서 풀어보길 추천한다. 참고로 맵 함수 안에 맵 함수를 넣을 때에는 (이 경우는 아님) 맨 안에 있는 맵 오브젝트를 자료형으로 변경해줘야 한다. 이는 마지막 호출 시에도 마찬가지이다. 아래 코드를 안에서부터 설명하면 커맨드의 모든 원소 x(리스트)에 대해 array에 0,1 : 슬라이싱을 적용하고,..
[LV1] 크레인 인형뽑기 Python
https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr def solution(board, moves): # 인형을 담을 스택 stack = [] answer = 0 # 1. move 안의 좌표를 check한다. for m in moves: pick = 0 # 2. board를 위에서부터 한 "행씩" 하나씩 체크한다. for r in board: # 3. move 안의 좌표는 열을 나타낸다. 0이 아니면 인형이 있는 것이므로 선택한다. if ..