문제 문제 바로가기> BOJ 1655번: 가운데를 말해요 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 풀이 2개의 우선순위 큐를 이용하여 문제를 해결할 수 있다. 💡 문제의 핵심은 2개의 우선순위 큐의 차이를 최대 1로 유지하며, 2개의 우선 순위 큐를 1차원적으로 봤을 때, 오름차순 수열이 되도록 만들어주는 것이다! 💡 maxHeap(오름차순)의 top은 항상 minHeap(내림차순)의 top보다 작다. → 오름차순 1. 두 힙의 size의 최대 차이를 1로 만들기 위해서, minHeap..
문제 문제 바로가기> BOJ 16235번: 나무 재테크 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 풀이 C++ 나이가 어린 나무부터 양분을 먹기 위해서 priorityQueue가 아닌, deque에 앞에 새로 번식한 나무를 넣어주는 방식으로 문제를 풀었다. 초기 입력 위치는 모두 다르고, 나이는 1씩 증가하므로, 이렇게 하면 정렬할 필요가 없어져서 시간 초과를 방지할 수 있다! #include #include #define MAX 11 using namespace std; int N, M,..
문제 문제 바로가기> BOJ 5430번: AC 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 풀이 덱에 들어갈 숫자의 길이가 1 이상일 수 있다. (0 T; while(T--){ string p; cin >> p; int size; cin >> size; string arr; cin >> arr; deque dq; string num = ""; for(int i=1; i