본문 바로가기

dp

(6)
[백준/Swift] 2096: 내려가기 | PS일지 문제 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 간단한 문제 요약 첫 줄에서 마지막 줄로 내려가는 게임이다. 맨 첫 줄의 시작은 별표의 위치이다. 그리고 각각의 칸에는 숫자가 있다. 위 층(별표)에서 아래층으로 내려갈 수 있는 경우는 각각의 별표 아래 동그라미 친 경우 이다. 마지막 줄로 내려갔을 때 얻을 수 있는 (방문한 칸 숫자 누적 합산)최대, 최소 점수를 구하시오!! 문제 풀이, 했갈렸던 점 어떻게 하면 문제를 풀 수 있을까? 고민했습니다. 그래프 형식의 input만 보면 dfs, bfs가 자꾸 생각나네요. d..
[백준/Swift] 11048 : 이동하기 문제 뿌수기!! + dp테이블 구하기!! BOJ_11048.swift 11048 : 이동하기/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/11048 11048번: 이동하기 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 www.acmicpc.net 11048 : 이동하기 / 문제 소개 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방(1,1) //준규가 있는 위치 미로의 가장 오른쪽 아랫 방 (N,M) // 준규가 이동해야 할 위치 각 방은 사탕이 있다. 준규는 (r,c)에 있다면, (r+1,c), (r,c+1),(r+1,c+1)로 이..
[백준/Swift] 쉬운 계단 수 문제 풀이 BOJ_10844.swift 10844 : 쉬운 계단 수/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 10844 : 쉬운 계단 수 / 문제 소개 문제 45656이란 수를 보자. 이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 출력 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력..
[백준/Swift] 11052 : 카드 구매하기 BOJ_11052.swift 11052 : 카드 구매하기/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 11052 : 카드 구매하기 / 문제 소개 예전에 dp문제를 풀 때 이 글을 보고 뒤로가기를 눌렀던 적이 있다. 민규 소비 스타일을 좀 바꿔야하는데 민규는 카드깡을 한다. 카드팩에 들어있는 카드에 따라 가격이 다르지만 같은 카드 N개를 구매 할 때 민규가 지불해야 하는 금액이 최대여야 한다... (이래야 좋은거 나..
[백준/Swift] 2133 : 타일 채우기 문제 완전 뿌수기!! BOJ_2133.swift 2133 : 타일 채우기 / 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 2133 : 타일 채우기 / 문제 소개 3*N 크기의 벽을 2*1 , 1*2 크기의 타일로 채우는 경우의 수를 구하는 문제입니다. 이 문제도 패턴이 있기 때문에 N이 증가함에 따라 이전에 구한 최대 경우의 수를 반복적으로 필요로 합니다. 풀이 과정 이 문제를 풀어나갈 때 N == 1 , 2 ,3 ,4 ... 30 까지의 경우가 있는데 dp배열 크기 : 31 인 Int형 배열에 n == 1 ~ N 일때 최대 값을 저장해 나..
[백준/Swift] 11727 : 2×n 타일링 2 BOJ_11727.swift 11727 : 2xn 타일링2 / 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 11727 : 2xn 타일링2 / 문제 소개 2*n ( 1 2 { for i in 3...n { dp[i] = (dp[i-1] + 2*dp[i-2]) % 10007 } } print(dp[n]) } BOJ_11727() visit my github