백준/Dynamic Programming3 [백준 9095번 / Java] 1, 2, 3 더하기 규칙을 찾는 데 시간이 걸렸다.각 숫자마다 경우의 수를 다시 구해야 하는건가..? 싶었는데 규칙이 있었다. 예를 들어 4를 구한다고 하면,4는1 + 3(3을 만드는 경우의 수)2 + 2(2를 만드는 경우의 수)3 + 1(1을 만드는 경우의 수)로 구분할 수 있다. 이전에 구했던 값들을 메모해 두었다가 다시 가져와서 쓰면 된다. 이 때 5와 6에서는 마지막에 3 + 2, 3 + 3 을 해주어야 하는데, 여기서만 예외적으로 추가하기 때문에 미리 값을 저장해두었다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(S.. 2024. 5. 10. [백준 1463번 / Java] 1로 만들기 이 문제는 각 숫자마다 최소 연산의 횟수가 정해지기 때문에 각 숫자에 대한 연산 횟수를 기억해두고 사용하는 것이 효율적이다.내가 헷갈렸던 부분은 연산의 순서였다. 간단히 생각하기에.. 큰수를 나눠보고 안 되면 2로 해보고 그 다음에 1을 빼면 되겠지.. 근데 아닐 수도 있긴 한데.. 하면서 처음 생각으로 알고리즘을 짰다. 결과는 땡,,확실하지 않은 내용은 다시 한번 확인하기@@.. 각 경우의 최소값을 찾아서 더하는 방식으로 해결했다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) t.. 2024. 5. 10. [백준 2748번 / Java] 피보나치 수 2 dp알고리즘 입문으로.. 가장 위에 있는 문제로 골랐다반복되는 정보를 메모(?) memoization 해놓고 가져다 쓴다니 정말 좋은 방법인 것 같다.잘 돌아가는 것 같은데 틀렸다고 나와서 뭐가 잘못됐지?? 하며 헤맸는데,, n이 90일 때 피보나치 수열이 음수값이 나오고 있었다..자료형!! int -> long으로 ,, 꼼꼼히 확인하자!import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buff.. 2024. 5. 10. 이전 1 다음