2022년 06월 13일 월요일 - 아니 오늘 왜 월요일임? 수요일 아님?
오늘 올려볼 문제는 120번 Triangle 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
아 자리 바꾸기 시른데 바꿈...
입력
사진에서도 볼 수 있듯이 2차원 int 배열 1개가 입력으로 들어온다.
풀이 및 코드
삼각형처럼 생긴 배열꼭대기에서 부터 바닥까지 가장 합이 작은 경로를 구하여 리턴하는 문제이다.
오늘은 처음부터 정답을 생각해냈다.
각 원소에서 위쪽 원소 2개를 비교하여 작은 것을 더해가며 최소값을 찾았다.
이제 코드를 봐보자!
풀이코드
class Solution {
public int minimumTotal(List<List<Integer>> triangle) {
int size = triangle.size();
for(int i = 1; i < triangle.size(); i++)
{
for(int j = 0; j < i + 1; j++)
{
if(j == 0)
{
triangle.get(i).set(j, triangle.get(i).get(j) + triangle.get(i - 1).get(j));
}
else if(j == i)
{
triangle.get(i).set(j, triangle.get(i).get(j) + triangle.get(i - 1).get(j - 1));
}
else
{
triangle.get(i).set(j, triangle.get(i).get(j) + Math.min(triangle.get(i - 1).get(j), triangle.get(i - 1).get(j - 1)));
}
}
}
int result = triangle.get(size - 1).get(0);
for(int i = 1; i < size; i++)
{
result = Math.min(result, triangle.get(size - 1).get(i));
}
return result;
}
}
제출 화면
옛날에 풀었던 문제와 비슷해서 잊지 않고 풀 수 있었던 것 같다.
내일도 이렇게 멋있게 문제를 풀 수 있었으면 좋겠다.
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.
'LeetCode 문제 풀이' 카테고리의 다른 글
[LeetCode] 665번 문제를 풀어보았다. (ft. java) (0) | 2022.06.25 |
---|---|
[LeetCode] 5번 문제를 풀어보았다. (ft. java) (0) | 2022.06.16 |
[LeetCode] 1695번 문제를 풀어보았다. (ft. java) (0) | 2022.06.12 |
[LeetCode] 1658번 문제를 풀어보았다. (ft. java) (0) | 2022.06.11 |
[LeetCode] 3번 문제를 풀어보았다. (ft. java) (0) | 2022.06.10 |