dynamic programming
-
BOJ 백준 1648 격자판 채우기 문제: https://www.acmicpc.net/problem/1648 1648번: 격자판 채우기 준규는 침대에 누워서 천장을 바라보고 있었다. 천장은 격자판 모양이었고, 계속해서 천장을 바라보다 보니 이런 생각이 들었다. 세로 크기가 N이고, 가로 크기가 M인 격자판을 2x1 크기의 도미노 www.acmicpc.net N × M 크기의 격자판을 2 × 1 또는 1 × 2 크기의 도미노로 채우는 방법의 수를 구해야 한다. 2 × M 크기의 격자판을 채우는 문제(BOJ 11726번)를 이전에 푼 적이 있어서 이와 유사한 문제라고 생각하고 접근했다. 그러나 해결 방법을 고민하면서 이전 것과는 전혀 다른 문제임을 알았다. 처음에는 이전 문제처럼 왼쪽 열에서부터 오른쪽 열로..
BOJ 백준 1648번 격자판 채우기BOJ 백준 1648 격자판 채우기 문제: https://www.acmicpc.net/problem/1648 1648번: 격자판 채우기 준규는 침대에 누워서 천장을 바라보고 있었다. 천장은 격자판 모양이었고, 계속해서 천장을 바라보다 보니 이런 생각이 들었다. 세로 크기가 N이고, 가로 크기가 M인 격자판을 2x1 크기의 도미노 www.acmicpc.net N × M 크기의 격자판을 2 × 1 또는 1 × 2 크기의 도미노로 채우는 방법의 수를 구해야 한다. 2 × M 크기의 격자판을 채우는 문제(BOJ 11726번)를 이전에 푼 적이 있어서 이와 유사한 문제라고 생각하고 접근했다. 그러나 해결 방법을 고민하면서 이전 것과는 전혀 다른 문제임을 알았다. 처음에는 이전 문제처럼 왼쪽 열에서부터 오른쪽 열로..
2021.04.05 -
BOJ 백준 19645 햄최몇? 문제: https://www.acmicpc.net/problem/19645 19645번: 햄최몇? 세 모질이들 관우, 철환, 길원이가 모였다. 모질이들은 모이면 서로 '햄버거 최대 몇 개 드실 수 있나요?'의 준말인 '햄최몇?'을 시전하며 자랑을 하기 바쁘다. 막내 길원이는 문득 중요한 사실을 www.acmicpc.net N개의 햄버거가 있고, 각 햄버거마다 먹을 때 얻을 수 있는 효용 값이 정해져 있다. 또한 섭취한 햄버거의 효용 값은 누적된다. 두 명의 선배와 막내 길원이가 모여서 N개의 햄버거를 먹을 때, 선배가 더 많은 효용을 얻게 하면서 막내가 얻을 수 있는 효용의 최댓값을 구하는 것이 문제이다. 처음에는 Dynamic Programming 풀이법으로 접근하여 다..
BOJ 백준 19645번 햄최몇?BOJ 백준 19645 햄최몇? 문제: https://www.acmicpc.net/problem/19645 19645번: 햄최몇? 세 모질이들 관우, 철환, 길원이가 모였다. 모질이들은 모이면 서로 '햄버거 최대 몇 개 드실 수 있나요?'의 준말인 '햄최몇?'을 시전하며 자랑을 하기 바쁘다. 막내 길원이는 문득 중요한 사실을 www.acmicpc.net N개의 햄버거가 있고, 각 햄버거마다 먹을 때 얻을 수 있는 효용 값이 정해져 있다. 또한 섭취한 햄버거의 효용 값은 누적된다. 두 명의 선배와 막내 길원이가 모여서 N개의 햄버거를 먹을 때, 선배가 더 많은 효용을 얻게 하면서 막내가 얻을 수 있는 효용의 최댓값을 구하는 것이 문제이다. 처음에는 Dynamic Programming 풀이법으로 접근하여 다..
2021.03.26 -
BOJ 백준 10160 암호 문제: https://www.acmicpc.net/problem/10160 10160번: 암호 새로 바뀐 KOI 웹사이트의 암호는 N개의 영문 알파벳 대문자로 이루어진다. 특별히 암호는 영문 알파벳 중 처음 K개를 사용해서 만든다. 예를 들어, K=5이면, ‘A', 'B', 'C', 'D', 'E'만으로 암호를 만들 www.acmicpc.net 길이가 N이고 영문 알파벳 중 처음 K개의 알파벳을 사용해서 만든 암호 중 안전한 암호의 개수를 구한다. 여기서 ‘안전한 암호’란 “ABCBC” 또는 “ABABC” 패턴이 없는 암호를 의미한다. 처음에는 여집합을 이용해서 구하는 방법을 고민했다. 전체 암호의 개수에서 안전하지 않은 암호의 개수를 구하면 안전한 암호의 개수를 알 수 있기..
BOJ 백준 10160번 암호BOJ 백준 10160 암호 문제: https://www.acmicpc.net/problem/10160 10160번: 암호 새로 바뀐 KOI 웹사이트의 암호는 N개의 영문 알파벳 대문자로 이루어진다. 특별히 암호는 영문 알파벳 중 처음 K개를 사용해서 만든다. 예를 들어, K=5이면, ‘A', 'B', 'C', 'D', 'E'만으로 암호를 만들 www.acmicpc.net 길이가 N이고 영문 알파벳 중 처음 K개의 알파벳을 사용해서 만든 암호 중 안전한 암호의 개수를 구한다. 여기서 ‘안전한 암호’란 “ABCBC” 또는 “ABABC” 패턴이 없는 암호를 의미한다. 처음에는 여집합을 이용해서 구하는 방법을 고민했다. 전체 암호의 개수에서 안전하지 않은 암호의 개수를 구하면 안전한 암호의 개수를 알 수 있기..
2021.03.24 -
BOJ 백준 20925 메이플스토리 문제: https://www.acmicpc.net/problem/20925 20925번: 메이플스토리 첫째 줄 사냥터 수 $N$ ($1 \le N \le 200$)과 방학 기간을 분 단위로 나타낸 $T$ ($1 \le T \le 1\,000$)가 주어진다. 다음 $N$개의 줄에는 $i$번째 사냥터의 특징인 입장에 필요한 최소 경험치 $c_i$와 $1$분마 www.acmicpc.net 메이플스토리 게임에는 여러 사냥터가 있는데, 각 사냥터는 입장에 필요한 최소 경험치와 1분마다 얻는 경험치 값을 지닌다. 상원이는 T분 동안 N개의 모든 사냥터 중 하나 이상의 임의의 사냥터에서 경험치를 얻는다. 사냥을 시작하고 매 분마다 현재 사냥터에서 다른 사냥터로 갈지 결정할 수 있고..
BOJ 백준 20925번 메이플스토리BOJ 백준 20925 메이플스토리 문제: https://www.acmicpc.net/problem/20925 20925번: 메이플스토리 첫째 줄 사냥터 수 $N$ ($1 \le N \le 200$)과 방학 기간을 분 단위로 나타낸 $T$ ($1 \le T \le 1\,000$)가 주어진다. 다음 $N$개의 줄에는 $i$번째 사냥터의 특징인 입장에 필요한 최소 경험치 $c_i$와 $1$분마 www.acmicpc.net 메이플스토리 게임에는 여러 사냥터가 있는데, 각 사냥터는 입장에 필요한 최소 경험치와 1분마다 얻는 경험치 값을 지닌다. 상원이는 T분 동안 N개의 모든 사냥터 중 하나 이상의 임의의 사냥터에서 경험치를 얻는다. 사냥을 시작하고 매 분마다 현재 사냥터에서 다른 사냥터로 갈지 결정할 수 있고..
2021.03.08 -
BOJ 백준 5444 시리얼 넘버 문제: https://www.acmicpc.net/problem/5444 N개의 기타가 존재하고, 이 중에는 강토가 갖고 있는 기타가 있다. 강토가 소유하는 기타의 시리얼 넘버를 모두 합한 값은 M의 배수이다. N개의 모든 기타의 시리얼 넘버와 M이 주어졌을 때, 가능한 강토의 기타 개수의 최댓값을 구해야 한다. 다음과 같은 배열을 정의하면 동적 프로그래밍(Dynamic Programming)으로 해결 가능하다. dp[i][j]: i번째 기타까지 봤고, 이 중에서 강토가 갖고 있는 기타의 시리얼 넘버 합을 M으로 나누었을 때의 값이 j일 때의 가능한 강토의 기타 개수의 최댓값 아래는 풀이 과정을 정리한 것이다. 1) 우선 dp 배열 값을 모두 -1로 초기화한다. 2..
BOJ 백준 5444번 시리얼 넘버 BOJ 백준 5444 시리얼 넘버 문제: https://www.acmicpc.net/problem/5444 N개의 기타가 존재하고, 이 중에는 강토가 갖고 있는 기타가 있다. 강토가 소유하는 기타의 시리얼 넘버를 모두 합한 값은 M의 배수이다. N개의 모든 기타의 시리얼 넘버와 M이 주어졌을 때, 가능한 강토의 기타 개수의 최댓값을 구해야 한다. 다음과 같은 배열을 정의하면 동적 프로그래밍(Dynamic Programming)으로 해결 가능하다. dp[i][j]: i번째 기타까지 봤고, 이 중에서 강토가 갖고 있는 기타의 시리얼 넘버 합을 M으로 나누었을 때의 값이 j일 때의 가능한 강토의 기타 개수의 최댓값 아래는 풀이 과정을 정리한 것이다. 1) 우선 dp 배열 값을 모두 -1로 초기화한다. 2..
2021.02.21 -
BOJ 백준 12861 죄수에게 주는 뇌물 문제: https://www.acmicpc.net/problem/12861 12861번: 죄수에게 주는 뇌물 세계적인 BOJ 감옥에는 방 P개가 1열로 늘어서 있다. 좌측 방부터 순서대로 1, 2, ... P란 번호가 붙어 있다. 모든 방은 독방으로, 각 방에 한 명의 죄수가 수감되어 있다. 각각의 방 사이에는 창문이 www.acmicpc.net 일렬로 된 P개의 감옥방에서 정해진 Q명의 죄수를 석방해야 한다. 어떤 한 죄수를 석방할 때 그 죄수 방의 바로 옆 방의 죄수들에게 뇌물을 줘야 하며, 옆 방의 또 옆 방에 있는 죄수들에게도 뇌물을 줘야 한다. 즉, 중간에 석방된 죄수로 인해 끊기는 지점 전까지 전달 가능한 죄수들에게 모두 금화 1개씩 뇌물로 줘야한다...
BOJ 백준 12861번 죄수에게 주는 뇌물BOJ 백준 12861 죄수에게 주는 뇌물 문제: https://www.acmicpc.net/problem/12861 12861번: 죄수에게 주는 뇌물 세계적인 BOJ 감옥에는 방 P개가 1열로 늘어서 있다. 좌측 방부터 순서대로 1, 2, ... P란 번호가 붙어 있다. 모든 방은 독방으로, 각 방에 한 명의 죄수가 수감되어 있다. 각각의 방 사이에는 창문이 www.acmicpc.net 일렬로 된 P개의 감옥방에서 정해진 Q명의 죄수를 석방해야 한다. 어떤 한 죄수를 석방할 때 그 죄수 방의 바로 옆 방의 죄수들에게 뇌물을 줘야 하며, 옆 방의 또 옆 방에 있는 죄수들에게도 뇌물을 줘야 한다. 즉, 중간에 석방된 죄수로 인해 끊기는 지점 전까지 전달 가능한 죄수들에게 모두 금화 1개씩 뇌물로 줘야한다...
2021.02.18 -
BOJ 백준 1315 RPG 문제: https://www.acmicpc.net/problem/1315 1315번: RPG 준규는 새 RPG 게임을 시작했다. 이 게임에서 캐릭터는 2가지 스탯을 가지고 있다. 하나는 힘(STR)이고, 다른 하나는 지력(INT)이다. 캐릭터를 생성했을 때, 두 스탯은 모두 1이다. 게임에는 총 N개의 www.acmicpc.net RPG 게임에서 캐릭터의 스탯으로 힘(STR)과 지력(INT) 2가지가 존재하고, 처음 생성했을 때 스탯은 모두 1이다. 게임에는 하나 당 한 번만 깰 수 있는 총 N개의 퀘스트가 존재한다. i번째 퀘스트를 깨는 데 필요한 STR를 STR[i], INT를 INT[i]라고 할 때, 이를 깨려면 캐릭터의 STR가 STR[i] 이상이거나 캐릭터의 INT가..
BOJ 백준 1315번 RPGBOJ 백준 1315 RPG 문제: https://www.acmicpc.net/problem/1315 1315번: RPG 준규는 새 RPG 게임을 시작했다. 이 게임에서 캐릭터는 2가지 스탯을 가지고 있다. 하나는 힘(STR)이고, 다른 하나는 지력(INT)이다. 캐릭터를 생성했을 때, 두 스탯은 모두 1이다. 게임에는 총 N개의 www.acmicpc.net RPG 게임에서 캐릭터의 스탯으로 힘(STR)과 지력(INT) 2가지가 존재하고, 처음 생성했을 때 스탯은 모두 1이다. 게임에는 하나 당 한 번만 깰 수 있는 총 N개의 퀘스트가 존재한다. i번째 퀘스트를 깨는 데 필요한 STR를 STR[i], INT를 INT[i]라고 할 때, 이를 깨려면 캐릭터의 STR가 STR[i] 이상이거나 캐릭터의 INT가..
2021.02.14 -
BOJ 백준 2201번 이친수 찾기 문제: https://www.acmicpc.net/problem/2201 2201번: 이친수 찾기 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 들 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 이진수 중에서 다음과 같은 성질을 만족하는 것들을 이친수라고 하자. 1. 이친수는 0으로 시작하지 않는다. 2. 이친수에서는 1이 두 번 연속으로 니타나지 않는다. 이와 같은 이친수를 이진수의 크기 순서대로 정렬하여 차례로 번호를 붙였을 때, K번째 이친수를 찾아야 한다. 우선 각 자리 수마다 이친수가 몇 개 존재하는지를 구해서 K번째 이..
BOJ 백준 2201번 이친수 찾기BOJ 백준 2201번 이친수 찾기 문제: https://www.acmicpc.net/problem/2201 2201번: 이친수 찾기 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 들 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 이진수 중에서 다음과 같은 성질을 만족하는 것들을 이친수라고 하자. 1. 이친수는 0으로 시작하지 않는다. 2. 이친수에서는 1이 두 번 연속으로 니타나지 않는다. 이와 같은 이친수를 이진수의 크기 순서대로 정렬하여 차례로 번호를 붙였을 때, K번째 이친수를 찾아야 한다. 우선 각 자리 수마다 이친수가 몇 개 존재하는지를 구해서 K번째 이..
2021.02.08