본문 바로가기

백준 PS일지/DynamicProgramming

(15)
[백준/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] 2294 : 동전 2 BOJ_2294.swift 2294 : 동전 2/ 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net 2294 : 동전 2 / 문제 소개 n가지 종류의 동전이 있다. 적당~히 사용해서 k원이 되도록 하고 싶다. 적당히가 아니라 동전의 개수가 최소로 k원을 만들려고한다. 각각의 동전은 계속해서 사용할 수 있고, k원을 만들지 못한다면 -1을 출력 해야 한다. 풀이 과정 이 문제는 동전 1..
[백준/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] 1904 : 01타일 BOJ_1904.swift 1904 : 01타일 / 문제 소개 풀이 과정 코드 구현 https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 1904 : 01타일 / 문제 소개 현재 있는 타일은 낱장 타일 1 낱장 두개 붙인 타일 00 총 2가지가 존재한다. 낱장 타일 0 은 존재하지 않으므로 01 , 10 은 만들 수 없다. 풀이 과정 이 문제를 풀어 나갈 때 규칙을 찾아야 합니다. N = 1 타일 1 만 사용할 수있습니다. dp[1] = 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
[백준/Swift] 1149 : RGB거리 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 이 문제는 현재 칠할 집의 색이 이전에 칠한 RGB의 색과 같지 않아야 한다는 조건이 있습니다. 구현 코드 import Foundation func BOJ_1149() { var n = Int(readLine()!)! var arr = Array(repeating: [Int](), count: n + 1) for i in 1...n { arr[i] = readLine()!.s..