본문 바로가기
반응형

Algorithm40

[프로그래머스] Lv2. 미로탈출 - 자바(JAVA) 문제 설명1 x 1 크기의 칸들로 이루어진 직사각형 격자 형태의 미로에서 탈출하려고 합니다. 각 칸은 통로 또는 벽으로 구성되어 있으며, 벽으로 된 칸은 지나갈 수 없고 통로로 된 칸으로만 이동할 수 있습니다. 통로들 중 한 칸에는 미로를 빠져나가는 문이 있는데, 이 문은 레버를 당겨서만 열 수 있습니다. 레버 또한 통로들 중 한 칸에 있습니다. 따라서, 출발 지점에서 먼저 레버가 있는 칸으로 이동하여 레버를 당긴 후 미로를 빠져나가는 문이 있는 칸으로 이동하면 됩니다. 이때 아직 레버를 당기지 않았더라도 출구가 있는 칸을 지나갈 수 있습니다. 미로에서 한 칸을 이동하는데 1초가 걸린다고 할 때, 최대한 빠르게 미로를 빠져나가는 데 걸리는 시간을 구하려 합니다. 미로를 나타낸 문자열 배열 maps가 매개.. 2025. 5. 18.
[리트코드] Medium 1091. Shortest Path in Binary Matrix - 자바(JAVA) 문제 설명n x n 크기의 이진 행렬 grid가 주어졌을 때, 이 행렬에서 가장 짧은 "청정 경로(clear path)"의 길이를 반환하세요. 만약 청정 경로가 존재하지 않는다면 -1을 반환하세요.청정 경로란 다음 조건을 만족하는 (0, 0)에서 (n - 1, n - 1)로 가는 경로입니다:경로에 포함된 모든 셀의 값이 0이어야 합니다.경로상의 모든 인접 셀들은 8방향(상하좌우 및 대각선)으로 연결되어 있어야 합니다.청정 경로의 길이는 해당 경로에 포함된 방문한 셀의 개수입니다. 제한사항n == grid.lengthn == grid[i].length1 grid[i][j]는 0 또는 1문제 파악(0, 0)에서 (n-1, n-1)까지 값이 0인 곳만 지나서 갈 수 있는 최단 경로의 길이를 구하는 문제이다.대.. 2025. 5. 13.
[프로그래머스] Lv3. 단어 변환 - 자바(JAVA) 문제 설명두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다.예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변.. 2025. 5. 11.
[리트코드] Medium 785. Is Graph Bipartite? - 자바(JAVA) 문제 설명정점이 0부터 n - 1까지 번호가 매겨진 n개의 노드로 구성된 무방향 그래프가 있습니다. 이때 graph라는 2차원 배열이 주어지며, graph[u]는 노드 u와 인접한 노드들의 배열입니다. 더 정확하게 말하면, graph[u]에 있는 각 노드 v에 대해, 노드 u와 노드 v 사이에 무방향 간선이 존재합니다.이 그래프는 다음과 같은 성질을 가집니다:자기 자신과 연결된 간선(자기 루프)은 없습니다. 즉, graph[u]에는 u가 포함되지 않습니다.중복 간선이 없습니다. 즉, graph[u]에는 중복된 값이 없습니다.v가 graph[u]에 있다면, u는 graph[v]에도 있습니다. (무방향 그래프이기 때문입니다.)그래프는 연결되어 있지 않을 수도 있습니다. 즉, 어떤 두 노드 u와 v 사이에 경.. 2025. 5. 11.
[리트코드] Medium 322. Coin Change - 자바(JAVA) 문제 설명당신에게는 서로 다른 금액 단위를 나타내는 정수 배열 coins와, 총금액을 나타내는 정수 amount가 주어집니다. amount를 만들기 위해 필요한 가장 적은 수의 동전 개수를 반환하세요. 만약 동전의 조합으로 해당 금액을 만들 수 없다면 -1을 반환하세요. 각 동전은 무한히 많이 가지고 있다고 가정할 수 있습니다. 제한사항1 1 0 문제 파악주어진 동전 종류를 사용해 특정 금액을 만들 때, 필요한 최소 동전 개수를 구하는 문제이다. 접근 방법bfs를 사용한다.노드는 현재까지 만든 금액을 의미한다.큐에 현재까지 만든 금액을 넣는다.큐에 있는 값(현재 금액)에 동전을 합해서 다음 노드(새로운 금액)를 만든다.이 노드를 전에 방문하지 않았다면 큐에 넣는다.amount(목표 금액)에 해당하는 금액.. 2025. 4. 29.
[프로그래머스] Lv3. 가장 먼 노드 - 자바(JAVA) 문제 설명n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 개수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해 주세요. 제한사항노드의 개수 n은 2 이상 20,000 이하입니다. vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미입니다.간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다.문제 파악주어진 그래프에서 1.. 2025. 4. 29.
반응형