목록알고리즘 (272)
쌓고 쌓다

https://www.acmicpc.net/problem/2304 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net #include #include using namespace std; int N; int max_pos, max_h; // 최대 높이의 위치와 높이 int arr[1001]; int res = 0 int main(void) { int L, H; cin >> N; for (int i = 0; i > L >> H; arr[L] = H; if (max_h ..
https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net #include #include using namespace std; map m; int N,M; int num; int main(void) { cin >> N >> M; for (int i = 0; i > num; if (m[num] == true) // 이미 존재하면 map에서 제거를 한다. m.erase(num); else // 존재 안하면 추가를 해준..
https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net #include #include using namespace std; int main(void) { int N, M; long long int res = 0; priority_queue pq; cin >> N >> M; for (int i = 0; i > num; pq.push(num); } for (int i =..
https://www.acmicpc.net/problem/11003 11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net #include #include #include #include using namespace std; vector v; deque dq; int N, L; int main(void) { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); int num; cin >> N >> L; for (int i = 0; i < N;..
https://www.acmicpc.net/problem/1275 1275번: 커피숍2 첫째 줄에 수의 개수 N과 턴의 개수 Q가 주어진다.(1 ≤ N, Q ≤ 100,000) 둘째 줄에는 처음 배열에 들어가 있는 정수 N개가 주어진다. 세 번째 줄에서 Q+2번째 줄까지는 x y a b의 형식으로 x~y까지의 합 www.acmicpc.net #include #include using namespace std; vector v; int N, Q; long long Tree[400001]; long long init(int start,int end,int node) { if (start == end) return Tree[node] = v[start]; int mid = (start + end) / 2; r..
https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net #include #include using namespace std; map m; int T, N, M; int main(void) { cin >> T; cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); while (T--) { int num; m.clear(); cin >> N; for (int i = 0; i > num;..
https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net #include #include using namespace std; map m; int N, M; string str; int res = 0; int main(void) { cin >> N >> M; for (int i = 0; i > str; m.insert(pair(str, true)); } for (int i = 0; i < M..

https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net #include #include using namespace std; deque dq; int N; int main(void) { cin >> N; int num; for (int i = 0; i > num; dq.push_back(make_pair(num,i+1)); // 덱에 이동해야할 수와 몇번째였는지 저장 } while (!dq.empty()..