DP(9)
-
[Programmers] 정수 삼각형
https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 메모이제이션을 요구하는 DP 문제이다. 문제를 처음 접근할 때 위에서부터 접근하여 헤맸었고 아래서 위로 올라가라는 힌트를 보고 쉽게 해결하였다. 코드 class Solution { public int solution(int[][] triangle) { for (int i = triangle.length - 1; i > 0; i--) { for (int j = 0; j < triangle..
2023.09.12 -
[Programmers] 3 x n 타일링
https://school.programmers.co.kr/learn/courses/30/lessons/12902 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 2 x n 타일링 문제를 풀고 같은 유형이라고 판단된 3 x n 타일링 문제를 풀어보았다. 규칙을 간단히 찾을 줄 알았으나 쉽지 않았고 규칙을 찾기 위해 직접 세보려고 했으나 n이 6인 경우부터 엄청나게 많은 경우의 수가 나오는 것을 알게 됐고 다른 설명글을 참고하게 되었다. 규칙은 f(n)= f(n-2)*4 - f(n-4) 이다. 그리고 이 규칙을 사용하기 위해서는 모듈러 분배법칙을 ..
2023.09.06 -
[Programmers] 2 x n 타일링
https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 기본적인 DP문제이다. n = 4인 경우를 생각해보자. 가능한 경우의 수는 사이트에 나와있는대로 5가지이다. 그렇다면 n = 3인 경우는 어떨까? 1 x 2를 제외한 것들이 해당되므로 3이 될 것이다. n = 2인 경우는 어떨까? 다시 2 x 1을 제외한 것들이 해당되므로 2가 될 것이다. 이를 식으로 계산해보면 a_n = a_(n - 1) + a_(n - 2)가 된다. 이를 그대로 코..
2023.09.06 -
[Programmers] 땅따먹기
https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 DP 문제이다. 처음에 완전 탐색으로 재귀를 활용하여 풀었떠니 모든 케이스에서 시간 초과가 발생했다. 이를 DP를 활용하여 해결하였다. DP class Solution { public int solution(int[][] land) { int answer = 0; int[][] dp = new int[land.length][land[0].length]; for (int col = 0; ..
2023.09.05 -
[Baekjoon] 2193번: 이친수
https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 문제 설명 0과 1로만 이루어진수를 이진수라고 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 00101..
2023.05.20 -
[Baekjoon] 9657번: 돌 게임 3
https://www.acmicpc.net/problem/9657 9657번: 돌 게임 3 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 문제 설명 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며 돌은 1개, 3개 또는 4개를 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이긴다. 두 사람이 완벽하게 게임했을 때 이기는 사람을 구하는 프로그램을 작성해라. 게임은 상근이가 먼저 시작한다. 입력 1 C가 1개 -> S가 1개를 가져가서 S가 이긴다. 돌이 6개면 S가 4개 -> C가 1개 -> S가 1개를 가져가서 S가 이긴다. 돌이 7개면 S가 1개 -> C가 4개 -> S가 1개 -> C가 1개를 가져가서 C가 이긴다. 돌..
2023.05.12