Cute Running Puppy
본문 바로가기
728x90

전체 글96

[백준] 쉬운 계단 수 - 자바 N = 1일 때 '0으로 시작하는 수는 계단수가 아니다.' 라는 조건으로 인해 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 끝나는 수 0 1 2 3 4 5 6 7 8 9 N=1 0 1 1 1 1 1 1 1 1 1 N = 2일 때 0은 1에서 올 수 있음 dp[2][0] = dp[1][1] → dp[i][j] = dp[i-1][1] (0에서 시작은 안 되지만 중간에 낄 수 있음) 끝나는 수 0 1 2 3 4 5 6 7 8 9 N=1 0 1 1 1 1 1 1 1 1 1 N=2 1 9는 8에서 올 수 있음 dp[2][9] = dp[1][8] → dp[i][j] = dp[i-1][8] (다음 칸이 없으므로 내려오는 경우는 불가) 끝나는 수 0 1 2 3 4 5 6 7 8 9 N=1 0 1 1 1 1 1 .. 2023. 7. 22.
[백준] 계단 오르기 vs 포도주 시식 - 자바 ✔️ 계단 오르기 규칙 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. 우선 계단의 점수와 현재 도착한 방법 중 최대값을 저장할 변수를 선언한다. int[] dp = new int[N+1]; int[] stair = new int[N+1]; 첫 번째 계단은 첫 번째 계단에 도착했을 때 최대값을 가짐 dp[1] = stair[1] 두 번째 계단은 첫번째 계단에서 올랐을 때 최대값을 가짐 dp[2] = stair[1] + stair[2]; 세 번째 계단은 첫 번째, 두 번째 계단 중 더 .. 2023. 7. 22.
[백준] 2×n 타일링 - 자바 비교적 쉽게 풀은 ! 그려보다 보면 눈에 잘 보인다! i = 2이기 위해 i = 0에서 + 2를 해야하므로 두개를 가로로 쌓고 (세로로 쌓으면 겹치는 방법이 존재) i = 1에서 + 1을 해야하므로 세로로 하나를 쌓는다. i = 3이기 위해 i = 1에서 + 2를 해야하므로 두개씩 가로로 쌓고 (세로로 쌓으면 겹치는 방법이 존재) i = 2에서 + 1을 해야하므로 세로로 하나씩 쌓는다. i = 4이기 위해 i = 2에서 + 2를 해야하므로 두개씩 가로로 쌓고 (세로로 쌓으면 겹치는 방법이 존재) i = 3에서 + 1을 해야하므로 세로로 하나씩 쌓는다. i = 5이기 위해 i = 3에서 + 2를 해야하므로 두개씩 가로로 쌓고 (세로로 쌓으면 겹치는 방법이 존재) i = 4에서 + 1을 해야하므로 세로로 하.. 2023. 7. 17.
[백준] 평범한 배낭 - 자바 아주구냥... 날 괴롭힌 문제 잡힐듯 안 잡힌 문제... 왜 안돼?!?! 하면서 엉엉 움 아이템 하나씩 추가될 때 무게를 1씩 늘리면서 비교하여 풀었다. 1 2 3 4 5 6 7 ( 6, 13 ) 0 0 0 0 0 13 13 ( 4, 8 ) ( 3, 6 ) ( 5, 12 ) 물건 1 = (무게 : 6, 가치 : 13) 물건 1개로 짐을 싸는 방법 무게가 6부터 담을 수 있으므로 6과 7에 13만큼의 가치를 담을 수 있다. 1 2 3 4 5 6 7 ( 6, 13 ) 0 0 0 0 0 13 13 ( 4 , 8 ) 0 0 0 8 8 max( 8 + 0 , 13) = 13 max( 8 + 0 , 13) = 13 (3, 6) (5, 12) 물건 1 = (무게 : 6, 가치 : 13) 물건 2 = (무게 : 4, .. 2023. 7. 16.
728x90