문제링크 : https://www.acmicpc.net/problem/16194 16194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int arr[1001]; int dp[1001]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; for(int i=1; i> arr[..
문제링크 : https://www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int arr[101]; int visited[101]; vectorresult; void dfs(int s, int e) { if(visited[s]) //방문했다면 { if(s == e) //돌아옴 { resu..
문제링크 : https://www.acmicpc.net/problem/12789 12789번: 도키도키 간식드리미 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; queue arr; for(int i=0; i> n; arr.push(n); } s..
문제링크 : https://www.acmicpc.net/problem/11497 11497번: 통나무 건너뛰기 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int T; cin >> T; int N; int arr[10001]; while(T--) { cin >> N; ..
문제링크 : https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair vectordirection; int dx[] = {1, 0, -1, 0}; //→, ↑, ←, ↓ int dy[] = {0, -1, 0, 1}; int x, y, d, g; int arr[101][..
문제링크 : https://www.acmicpc.net/problem/10158 10158번: 개미 가로 길이가 w이고 세로 길이가 h인 2차원 격자 공간이 있다. 이 격자는 아래 그림처럼 왼쪽 아래가 (0,0)이고 오른쪽 위가 (w,h)이다. 이 공간 안의 좌표 (p,q)에 개미 한 마리가 놓여있다. 개미는 오 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int W, H, P, Q, T; cin >> W >> H >> P >> Q >> T; int N..
문제링크 : https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int T; string s; int func(int left, int right, int check) { while(left> T; while(T--) { cin >> s; cout
문제링크 : https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int N, M, K, X; //도시 갯수, 도로 갯수, 거리 정보, 출발 도시 번호 int dist[300001]; vectorv[300001]; ve..
문제링크 : https://www.acmicpc.net/problem/13398 13398번: 연속합 2 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int arr[100001]; int dp[100001][2]; //제거하지 않은 경우와 제거한 경우 int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N, re..
문제링크 : https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair ll arr[1000]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N, M; cin >> N >> M; for(..
문제링크 : https://www.acmicpc.net/problem/2513 2513번: 통학버스 첫째 줄에는 세 개의 양의 정수 N, K, S가 빈칸을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 아파트 단지의 수이며 2 ≤ N ≤ 30,000이다. 두 번째 정수 K는 1 ≤ K ≤ 2,000이며, 통학버스의 정원 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int N, K, S; //단지 수, 통학버스 정원, 학교 위치 vector lefts; vector rights; int distance(vector v) { int pos = S, num = ..
문제링크 : https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair pair tree[26]; void pre(char node) //전위 { if(node == '.') return; cout > root >> left >> right; tree[root - 'A'].first =..
문제링크 : https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int R, C, T, result = 0; int arr[50][50]; //기존 배열 int arr_changed[50][50]; //변동된 배열 int dr[] = {1, -1, 0, 0}; int dc[] = {0, ..