본문 바로가기

백준

(497)
[백준 12869번] 뮤탈리스크 (C++) 문제링크 : https://www.acmicpc.net/problem/12869 12869번: 뮤탈리스크 1, 3, 2 순서대로 공격을 하면, 남은 체력은 (12-9, 10-1, 4-3) = (3, 9, 1)이다. 2, 1, 3 순서대로 공격을 하면, 남은 체력은 (0, 0, 0)이다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int N; int scv[3]; int dp[61][61][61]; int dfs(int x, int y, int z) { //파괴된 scv가 존재하면 해당 scv는 0으로 if(x scv[i]; } cout
[백준 18353번] 병사 배치하기 (C++) 문제링크 : https://www.acmicpc.net/problem/18353 18353번: 병사 배치하기 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 2,000) 둘째 줄에 각 병사의 전투력이 공백을 기준으로 구분되어 차례대로 주어진다. 각 병사의 전투력은 10,000,000보다 작거나 같은 자연수이다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int N; int arr[2001]; int dp[2001]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N; for(int i=0;..
[백준 1520번] 내리막 길 (C++) 문제링크 : https://www.acmicpc.net/problem/1520 1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int M, N; int arr[501][501]; int dp[501][501]; int dx[] = {1, -1, 0, 0}; int dy[] = {0, 0, 1, -1}; int dfs(int y, int ..
[백준 9658번] 돌 게임 4 (C++) 문제링크 : https://www.acmicpc.net/problem/9658 9658번: 돌 게임 4 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int dp[1001]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int N; cin >> N; dp[1]=0; dp[2]=1; dp[3]=0; dp[4]=1; //1이 상근이가 이기는 경우 for(int i=5; i 1개 가져가면 상대방이 나머지 가져가야 하므로 이김 dp[..
[백준 1446번] 지름길 (C++) 문제링크 : https://www.acmicpc.net/problem/1446 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 10,000보다 작거나 같은 자연수이다. 다음 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이 www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int N, D; vectorv[10001]; int dist[10001]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N >> D; ..
[백준 1958번] LCS 3 (C++) 문제링크 : https://www.acmicpc.net/problem/1958 1958번: LCS 3 첫 줄에는 첫 번째 문자열이, 둘째 줄에는 두 번째 문자열이, 셋째 줄에는 세 번째 문자열이 주어진다. 각 문자열은 알파벳 소문자로 이루어져 있고, 길이는 100보다 작거나 같다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int dp[101][101][101]; string s1, s2, s3; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> s1 >> s2 >> s3; for(int..
[백준 1182번] 부분수열의 합 (C++) 문제링크 : https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int N, S, result; int arr[21]; void dfs(int idx, int sum) { if(idx==N) return; if(sum + arr[idx] ==..
[백준 15486번] 퇴사 2 (C++) 문제링크 : https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int N, maxV; int arr[1500001][2]; int dp[1500001]; int main() { ios_base::sync_with_stdio(0); cin.tie(..