본문 바로가기
반응형

분류 전체보기163

[Python] 프로그래머스 - 광물 캐기 프로그래머스 광물 캐기 문제는 주어진 곡괭이를 사용해 광물을 캐는 방법 중 피로도가 최소가 되는 경우를 구하는 문제다. 난이도는 레벨2이며 백트래킹, 그리디를 통해 해결할 수 있다. 프로그래머스 - 광물 캐기 문제 정보 알고리즘 분류 - 백트래킹, 그래프 탐색 - 그리디 난이도 - level 2 문제 요약 곡괭이 종류는 다이아, 철, 돌이 있으며 각각 0~5개 주어진다. 곡괭이 1개 당 5개의 광물까지 캘 수 있다. 곡괭이를 선택하면 그 곡괭이를 5번 사용하고 나서 다음 곡괭이를 사용할 수 있다. 광물을 캐는 피로도는 곡괭이 종류와 광물 종류에 따라 다르다. (TC와 관계없이 고정되어있음) 광물은 주어진 순서대로만 캘 수 있다. 모든 광물을 캐거나, 곡괭이를 모두 사용할 때까지 광물을 캔다. 문제 풀이 .. 2023. 3. 29.
[Python] 프로그래머스 - 미로 탈출 프로그래머스 미로 탈출 문제는 출발점에서 레버를 당기고 출구로 나가기까지의 최단거리를 구하는 문제다. 난이도는 레벨2이며 BFS를 통해 해결할 수 있다. 프로그래머스 - 미로 탈출 문제 정보 알고리즘 분류 - Graph - BFS 난이도 - level 2 문제 요약 HxW 크기의 격자가 주어진다. S: 시작 지점, E: 출구, L: 레버, O: 통로, X: 벽 출구로 나가기 위해서는 반드시 레버를 동작시켜야 한다. 출구로 나가기위한 최단 이동 거리를 구하라. 문제 풀이 과정 가중치가 없고 단순히 최단거리를 구하는 문제이므로 BFS를 사용한다. 시작점~레버까지의 최단 거리 + 레버~출구까지의 최단거리 코드 import collections # 같은 maps 배열을 여러번 사용하기 위해 방문한 곳을 표시하는.. 2023. 3. 28.
[Python] LeetCode - 64. Minimum Path Sum LeetCode 64번 Minimum Path Sum 문제는 (n,m)칸 까지 가는 최소경로를 구하는 문제다. 난이도는 Medium이며 DP를 통해 해결할 수 있다. 리트코드 64번 Minimum Path Sum 문제 정보 알고리즘 분류 - Dynamic Programming 난이도 - Medium 문제 요약 0이상의 정수로 채워진 mxn 그리드가 주어진다. 맨 왼쪽 위칸에서 맨 오른쪽 아래칸까지 가는 최소 경로를 구하라. 단, 오른쪽 또는 아래로만 이동할 수 있다. 문제 풀이 과정 각 칸까지 이동하기 위한 최솟값을 구한다. 왼쪽 or 위쪽에 저장된 값 중 더 작은 값을 더한다. 코드 class Solution: def minPathSum(self, grid: List[List[int]]) -> int.. 2023. 3. 27.
[Python] LeetCode - 1319. Number of Operations to Make Network Connected LeetCode 1319번 Number of Operations to Make Network Connected 문제는 그래프 탐색 관련 문제다. 난이도는 Medium이며 DFS/BFS를 통해 해결할 수 있다. 리트코드 1319번 문제 정보 알고리즘 분류 - 그래프 탐색 난이도 - Medium 문제 요약 0부터 n-1까지의 컴퓨터 n개, 그리고 컴퓨터간에 연결된 이더넷 케이블을 나타내는 connections가 주어진다. 케이블을 옮겨서 모든 컴퓨터가 연결되도록 하려면 최소 몇개의 케이블을 옮겨야 하는지 구하라. 케이블이 모자라면 -1을 반환한다. 문제 풀이 과정 초기 상태에서 몇개의 그룹이 생기는지 구한다. 그룹들을 잇기 위해 필요한 케이블 개수 (그룹 수) - 1을 반환한다. 전체 케이블 개수가 필요한 .. 2023. 3. 23.
반응형