Cute Running Puppy
본문 바로가기
728x90

분류 전체보기94

[백준] 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.
[백준] 1, 2, 3 더하기 - 자바 DP는 왜 이렇게 어려운지... 날 울린다...* 근데 식이 보이면 이렇게 허무할 수 없다.... 흥 1, 2, 3의 합은 각각 1 (1 가지) 1 2 (2 가지) 1 + 1 2 3 (4 가지) 1 + 1 + 1 1 + 2 2 + 1 3 4는 1, 2, 3씩 뺀 수와 표현할 수 있다.(1, 2, 3으로만 표현하기 위해) 즉, 3 + 1, 2 + 2, 1 + 3으로 표현할 수 있다. 3 (4 가지) + 1 1 + 1 + 1 + 1 1 + 2 + 1 2 + 1 + 1 3 + 1 2 (2 가지) + 2 1 + 1 + 2 2 + 2 1 (1 가지) + 3 1 + 3 즉 4를 표현하는 방식은 4 (4 + 2 + 1 = 7 가지) 1 + 1 + 1 + 1 1 + 2 + 1 2 + 1 + 1 3 + 1 1 + 1 +.. 2023. 7. 16.
[알고리즘] DP? 다이나믹 프로그래밍 DP란 다이나믹 프로그래밍(Dynamic Programming) 또는 동적 계획법이라고 불리는 알고리즘이다. 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하여 해결할 때 사용한다. 저장? 한 번 계산한 문제는 다시 계산하지 않도록 예시로 피보나치 수열을 들 수 있다. 피보나치 수 의 점화식은 f(n) = f(n-1) + f(n-2) f(n-1)와 f(n-2)를 각각 따로 구하게 되면 f(n-2) 만큼 중복된 계산이 있을 것이다. 그래서 f(n-2)까지의 계산 결과를 저장한 후 f(n-1)를 구하기 위해 f(n-2), f(n-3)을 꺼내 계산하고 최종적으로 f(n)을 구하기 위해 f(n-1), f(n-2)을 꺼내 계산하는 것 DP는 2가지 방식으로 구현할 수 있다. Bottom-Up (반복문).. 2023. 7. 16.
728x90