본문 바로가기

전체 글

(52)
백준 2156번 포도주 시식 https://www.acmicpc.net/problem/2156 처음 문제를 접했을 땐, 월요일(20일)에 풀었던 계단 오르기와 동일한 규칙인 것으로 생각했었다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다.연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 하지만, 문제의 조건 중에 '선택하면' 이란 단어를 보고 다른 문제라는 것을 알게되었다. 왜냐하면 계단오르기는 n 번째 계단을 무조건 밟는 것이기 때문에, dp 배열마다 n번째 계단의 값을 더하였기 때문이다. for(int n = 2 ; n n번째 포도주 시식 여부dp[n][2] : n-2 단계에서 -> n번재 포도주 시식 여부로 설정하였다. 각 column 별로 확인하면, dp[n]..
백준 1912번 연속합 https://www.acmicpc.net/problem/1912 이 문제는 그저께 계단 오르기처럼 점화식을 세우기 보단.. 예시 입력으로 부터 규칙을 찾아내려 하였다. 10 10 -4 3 1 5 6 -35 12 21 -1 처음엔 실수 했던 것이, 양수만 모두 더하는 경우만 생각하였었다.즉, 위 예제에서 2번째는 음수(-4)이므로 더하지 않고, 3번째(3) ~ 6번째(6)까지만 더한 값만을 고려한다거나, 12 + 21만 고려한다거나 하는 경우만 생각했다. 위 예제에선 운 좋게 답은 맞았을 지 몰라도, 12와 21이 1과 2라면 답은 달라지게 된다. 10 10 -4 3 1 5 6 -35 1 2 -1그 이유는10 -4 +3 +1 +5 +6 = 21인데,10 -4 +3 +1 +5 +6 = 15이기 때문이다.처..
백준 2579 계단 오르기 https://www.acmicpc.net/problem/2579 문제 설명에 보면 아래와 같은 조건이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다.연속된 세 개의 계단을 모두 밟아서는 안된다. 단, 시작점은 계단에 포함되지 않는다.마지막 도착 계단은 반드시 밟아야 한다. 1번 조건은,현재 n번째 계단에서 오를 수 있는 위치는 n+1, n+2 번째 계단이다. 2번 조건은,n, n+1, n+2 계단을 동시에 밟을 수 없다는 것 3번 조건은 마지막 계단을 반드시 밟는 것 n번째 계단을 밟는 방법은1. n-1번째 계단을 밟고 오는 경우2. n-2번째 계단을 밟고 오는 경우2가지로 표현 될 수 있다. 하지만 ..
알고리즘 포스팅 시작 알고리즘 포스팅 시작