본문 바로가기

PS(알고리즘) 문제풀이26

[LeetCode] 198. 집 도둑(House Robber) [Java, DP] 문제[문제 설명]당신은 전문적인 도둑으로, 한 거리에 있는 집들을 털 계획을 세우고 있습니다. 각 집에는 일정한 금액의 돈이 숨겨져 있습니다. 그러나 인접한 집들은 보안 시스템이 연결되어 있어, 같은 밤에 두 개의 인접한 집에 침입하면 자동으로 경찰에 신고됩니다.정수 배열 nums가 주어지며, 이 배열은 각 집에 숨겨진 돈의 금액을 나타냅니다. 경찰을 경고하지 않으면서 오늘 밤에 털 수 있는 최대 금액을 반환하세요.[제한 사항]1  [입출력 예시]nums return[1, 2, 3, 1] 4[2, 7, 9, 3, 1] 12 [입출력 예시 설명]입출력 예#11번 집(nums[0])을 털고, 3번 집(nums[2])을 털면 됩니다.입출력 예#21번 집, 3번 집, 5번 집을 털면 됩니다. 문제 분석❗nums.. 2024. 8. 25.
[LeetCode] 62. 유일한 경로(Unique Paths) [Java, DP] 문제[문제 설명]로봇이 m x n 격자에 있습니다. 로봇은 초기 위치에서 왼쪽 상단 모서리(즉, grid[0][0])에 있습니다. 로봇은 오른쪽 하단 모서리(즉, grid[m-1][n-1])로 이동하려고 합니다. 로봇은 언제든지 아래쪽이나 오른쪽으로만 이동할 수 있습니다.정수 m과 n이 주어지면, 로봇이 오른쪽 하단 모서리에 도달하기 위해 취할 수 있는 가능한 고유 경로의 수를 반환하세요.테스트 케이스는 정답이 2 * 109 이하가 되도록 생성됩니다.[제한 사항]1  [입출력 예시]m n return3 7 283 2 3 [입출력 예시 설명]입출력 예#1총 28가지 경로가 있습니다.입출력 예#2왼쪽 상단 모서리에서 오른쪽 하단 모서리로 도달하기 위한 총 3가지 경로가 있습니다1. 오른쪽 -> 아래 -> 아.. 2024. 8. 25.
[프로그래머스] 최소 비용으로 계단 오르기 (java, DP) 문제문제 설명당신은 계단의 각 단계에서 지불해야 하는 비용이 담긴 정수 배열 cost를 받았습니다. cost[i]는 i번째 단계의 비용을 나타냅니다. 비용을 지불한 후, 한 계단 또는 두 계단을 오를 수 있습니다.0번 인덱스의 단계에서 시작할 수도 있고, 1번 인덱스의 단계에서 시작할 수도 있습니다.층의 꼭대기에 도달하기 위한 최소 비용을 반환하세요.제한 사항2 입출력 예cost return[10, 15, 20] 15[1, 100, 1, 1, 1, 100, 1, 1, 100, 1] 6입출력 예 설명입출력 예#1인덱스 1에서 시작합니다.15를 지불하고 두 계단을 올라 꼭대기에 도달합니다.총 비용은 15입니다.입출력 예#2인덱스 0에서 시작합니다.1을 지불하고 두 계단을 올라 인덱스 2에 도달합니다.1을 지.. 2024. 8. 23.
[프로그래머스] 동전 교환 (java, DP) 문제문제 설명여러 종류의 동전을 나타내는 정수 배열 coins가 주어집니다. 또한, amount라는 총 금액이 주어집니다.이 금액을 만들기 위해 필요한 최소 동전의 수를 반환하세요. 만약 이 금액을 주어진 동전으로 만들 수 없다면 -1을 반환하세요.각 동전의 개수는 무한히 많다고 가정할 수 있습니다.제한 사항-1  입출력 예coins amount return[1, 2, 5] 11 3[2] 3 -1[1] 0 0 입출력 예 설명입출력 예#111 = 5 + 5 + 1입출력 예#2주어진 coins로는 amount를 충족시킬 수 없습니다.입출력 예#3amount가 0이므로 필요한 코인은 없습니다.문제 분석문제 파악동전 종류 : coins 배열 (1≤coins[i]≤231-1)목.. 2024. 8. 23.