728x90
https://school.programmers.co.kr/learn/courses/30/lessons/389480
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
메모리: 93.7 MB, 시간: 12.69 ms
사용 알고리즘: 자료구조
import java.util.*;
class Solution {
public int solution(int[][] info, int n, int m) {
Queue<int[]> q = new LinkedList();
if(info[0][0] < n) q.add(new int[] {info[0][0], 0});
if(info[0][1] < m) q.add(new int[] {0, info[0][1]});
Queue<int[]> next;
boolean[][] visited;
int[] tmp;
for(int i = 1; i < info.length; i++) {
next = new LinkedList();
visited = new boolean[n + 1][m + 1];
while(!q.isEmpty()) {
tmp = q.poll();
if(tmp[0] + info[i][0] < n && !visited[tmp[0] + info[i][0]][tmp[1]]) {
next.add(new int[] {tmp[0] + info[i][0], tmp[1]});
visited[tmp[0] + info[i][0]][tmp[1]] = true;
}
if(tmp[1] + info[i][1] < m && !visited[tmp[0]][tmp[1] + info[i][1]]) {
next.add(new int[] {tmp[0], tmp[1] + info[i][1]});
visited[tmp[0]][tmp[1] + info[i][1]] = true;
}
}
q = next;
}
int answer = n;
while(!q.isEmpty()) {
tmp = q.poll();
answer = Math.min(answer, tmp[0]);
}
if(answer == n) return -1;
else return answer;
}
}728x90
'Problem Solving > Programmers' 카테고리의 다른 글
| [프로그래머스, 131701] 연속 부분 수열 합의 개수 (java) (0) | 2025.12.11 |
|---|---|
| [프로그래머스, 301647] 부모의 형질을 모두 가지는 대장균 찾기 (mysql) (0) | 2025.12.08 |
| [프로그래머스, 67260] [카카오 인턴] 동굴 탐험 (java) (3) | 2025.08.10 |
| [프로그래머스, 49189] 가장 먼 노드 (java) (1) | 2025.08.09 |
| [프로그래머스, 120807] 숫자 비교하기 (java) (0) | 2025.07.07 |