[BOJ] 백준 2410 2의 멱수의 합 C++(Cpp)
2024. 11. 18. 21:01
알고리즘/백준[BaekJoon]
링크 : https://www.acmicpc.net/problem/2410문제를 풀며 고민했던 점DP를 어떻게 쪼개서 풀어야할까점화식은 어떻게 구해야할까와 같은 일반적인 접근법을 익히기 위해서 고민했다.밟았던 단계N이 홀수일 경우N - 1의 조합에서 +1을 하게 되면 그 조합이 만들어진다는 점을 착안해야한다고로 DP[N] = DP[N - 1]Ex. N = 3N = 2 조합 (1 + 1, 2) -> N = 3 조합 (1 + 1 + 1, 2 + 1)Ex. N = 5N = 4 조합 (1 + 1 + 1 + 1, 2 + 1 + 1, 2 + 2) -> N = 5 조합 (1 + 1 + 1 + 1 + 1, 2 + 1 + 1 + 1, 2 + 2 + 1)N이 짝수일 경우N - 1의 조합에서 + 1을 한 조합과 N / 2의..
[BOJ] 백준 3101 토끼의 이동 자바(Java)/C++(Cpp)
2024. 11. 13. 00:45
알고리즘/백준[BaekJoon]
링크 : https://www.acmicpc.net/problem/3101문제를 풀며 고민했던 점배열을 직접 만들어서 해결하면 시간초과가 예상된다.배열의 수학적 규칙을 이용해서 해결해야겠다.밟았던 단계대각선으로 전개되는 배열이므로 대각선의 숫자를 이용해서 규칙을 만들자1번째 : (0, 0)2번째 : (0, 1), (1, 0)3번째 : (0, 2), (1, 1), (2, 0)n번째 : (0, n-1), (1, n-2), (2, n-3), ... , (n-3, 2), (n-2, 1), (n-1, 0)규칙 : (r, c)일때 r+c+1이 대각선의 번호가 된다 / n번째 대각선은 n개의 숫자를 갖게 된다.대각선 번호가 n을 넘어가게 되면 그 번호에 포함되는 숫자의 개수가 1씩 줄어드는 규칙을 가지고 있다n+1번..