전체 글92 백준 2156. 포도주 시식 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 문제 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 .. 2022. 7. 4. 백준 10844. 쉬운 계단 수 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 점화식을 잘 세워야 한다는 것을 명심한 문제.. i가 숫자열의 길이라고 했을 때, 맨 뒤에 올 수 있는 수의 갯수는 다음과 같다. 이전 i의 대각선의 합으로 나타나는 것으로 알 수 있다. 좌우 끝(1, 9)의 경우에는 대각선 하나의 합으로 나타나고. 따라서 점화식을 코드로 구현하면 다음과 같다. n = int(input()) dp = [[0 for _ in range(10)] for _ in range(101)] for i in range(1, 10): dp[1][i] = 1 for i in range(2, n.. 2022. 7. 1. 백준 1463. 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 동적 프로그래밍은 뭔가 감 잡은 것 같다 하면 또 신기한 문제가 튀어나오네.. 기본적으로 작은 값부터 쌓아올리는 시도는 했는데 카운트 자체를 셀 생각이 쉽게 나지 않았다. n = int(input()) d = [0] * (n + 1) for i in range(2, n+1): d[i] = d[i-1] + 1 #1을 뺀 경우는 d[i-1]연산 + 1번 연산 if i%3 == 0: d[i] = min(d[i], d[i//3] + 1) #더 작은 게 필요하기 때문에 1을 빼는 연산과 나머지 연산 비교 if i%2 =.. 2022. 6. 30. 백준 2579. 계단 오르기 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 이런 문제에서 절실히 느끼는 것.. 조그만 문제부터 해결하고 이를 이용해서 답을 도출하자 3개의 계단이 있다고 할 때 구해보면, 1->3 혹은 2->3이 문제의 해결책이 된다. 이 중에서 가장 큰 값을 구하면 됨. 4개의 계단이 있다고 하면, 두 가지 경우의 수로 나뉜다. 3을 밟고 4를 밟거나, 2를 밟고 4를 밟거나. 따라서 계단이 1, 2, ... 일 경우 최댓값을 구하고, 3을 밟았을 때 최댓값 + 4.. 2022. 6. 29. 이전 1 2 3 4 5 6 7 ··· 23 다음