본문 바로가기

DP

[백준] 2302 극장 좌석 java 1. 문제 설명문제 링크뭔놈의 극장이 티켓을 샀는데, 양 옆으로 옮겨 앉을 수 있음...예를 들어 3번 좌석을 산 사람은 4번 좌석에 앉아도 되고, 2번 좌석에 앉아도 됨.하지만 3번 좌석을 산 사람이 양 옆 이외의 좌석에는 못 앉음. 예를 들어 7번 좌석이나 1번 좌석으로 이동은 불가.또, VIP석이라는 개념이 있음. 이름이랑 맞지 않게 이거 산 사람은 그냥 그 자리 앉아야함.예를 들어 7번 좌석이 VIP석이면 7번 산 사람은 7번에 무조건 앉아야함.N번까지의 좌석이 있고, 만석일 때, 사람들끼리 자리를 바꿔 앉을 수 있는 경우의 수를 구하라.2. 접근 방식도저히 못 풀겠어서 다른 사람 풀이를 봤다.KEY WORD : DP(1) 기본 원리패턴이 안 보이면, 무작정 가짓수를 적어서 패턴을 생각해봐야 한다.. 더보기
[백준] 11057 오르막수 java 문제 풀이 1. 문제 설명문제 링크숫자의 자릿수가 주어질 때, 해당 자릿수를 가지고 만들 수 있는 오르막수의 개수를 구하라.오르막수?숫자의 가장 왼쪽부터 시작해 오른쪽으로 갈수록 자릿수의 크기가 작아지지 않는 수를 오르막수라고 한다. 다시 말해,1234, 2569 등이 오르막수이다.작아지지 않으면 된다고 하였으므로,1111, 1119도 오르막수가 된다.2. 접근 방식KEYWORD: DP자릿수가 1000의 자리까지 주어진다. 중복 순열로 문제를 푼다면, O(1000!) 이니까, 당연히 문제를 풀지 못한다. 따라서 해당 문제는 DP를 사용해야 한다.그렇다면, DP는 어떻게 생각해야 할까?2차원 배열로 DP를 만들어보겠다. 세로는 자릿수, 가로는 맨왼쪽의 숫자가 무엇으로 시작하는지 나타내는 것이다. 01234567891.. 더보기