본문 바로가기

Algorithm/📖Baekjoon138

#11279 최대 힙 # 문제 # 입력 및 출력 # 풀이 최소 힙에서 설명했듯이 우선순위 큐는 디폴트가 최대 힙이기 때문에 우선순위 큐를 사용해서 풀어주면 됨 priority_queue q; #pragma warning(disable:4996) #include #include using namespace std; int main() { int n, inp; scanf("%d", &n); priority_queue q; for (int i = 0; i < n; i++) { scanf("%d", &inp); if (inp == 0) { if (q.empty()) printf("0\n"); else { printf("%d\n", q.top()); q.pop(); } } else q.push(inp); } } 이것도 마찬가지로 pr.. 2022. 4. 27.
#1927 최소 힙 # 문제 # 입력 및 출력 # 풀이 우선순위 큐를 사용해서 최소 힙, 최대 힙 구현 방법은 아래 블로그 참고 https://breakcoding.tistory.com/123 [C++] 라이브러리, 우선순위 큐, 최대 힙, 최소 힙 C++에서 우선순위 큐를 구현하려면 라이브러리를 사용하면 된다. 따라서 #include 코드를 써줘야 한다. priority_queue - C++ Reference container_typeThe second template parameter (Container)Type of the und.. breakcoding.tistory.com 우선순위 큐를 선언하면 디폴트가 최대 힙임 [priority_queue q; ] 최소 힙으로 선언하고 싶다면 [ priority_queue q;.. 2022. 4. 27.
#1874 스택 수열 # 문제 # 입력 및 출력 # 풀이 롤 방송 틀어놓고 풀어서 그런지 집중이 안돼서 3일을 붙잡고있었던 것 같다ㅋㅋㅋ 오늘 각잡고 앉아서 풀었는데 나름 쉽게 풀린 것 같다 대충 쓸 변수랑 돌아가는 방식을 단계별로 나눠서 손으로 작동시켜봤다 처음에 cin, cout, endl을 썼더니 출력이 너무 많아져서 그런지 시간초과가 떴다 아무리봐도 알고리즘엔 문제가 없어보이는데 시간 초과가 뜨길래 저번처럼 입출력에서 문제인가 싶어서 printf, scanf로 바꾸고 endl은 \n으로 바꿔서 돌렸더니 돌아가더라ㅋㅋ #pragma warning (disable:4996) #include #include #include using namespace std; stack s; vector op; int inp[100000].. 2022. 4. 27.
#2164 카드2 # 문제 # 입력 및 출력 # 풀이 앞에 들어간 숫자를 삭제하고 뒤로 빼는 행위를 하기 때문에 큐를 사용했음 #include #include using namespace std; int main() { int n; cin >> n; queue card; for (int i = 1; i 2022. 4. 26.
#10773 제로 # 문제 # 입력 및 출력 # 풀이 최근 숫자를 지운다고 했으니까 lifo 구조인 스택을 사용하면 됨 #include #include using namespace std; int main() { int k, result = 0; cin >> k; stack cash; for (int i = 0; i > tmp; if (tmp == 0) cash.pop(); else cash.push(tmp); } while (!cash.empty()) { result += cash.top(); cash.pop(); } cout 2022. 4. 25.
#2941 크로아티아 알파벳 # 문제 # 입력 및 출력 # 풀이 이 문제도 처음엔 내가 하나하나 비교하는 조건문으로 풀었는데 바로 밑에 짧게 푼 코드가 있어서 써봤다,, #include #include using namespace std; int main() { string input; cin >> input; int i = 0, count = 0; while (i < input.size()) { if (input[i] == 'c') { if (input[i + 1] == '=' || input[i + 1] == '-') i++; } else if (input[i] == 'd') { if (input[i + 1] == 'z'&&input[i + 2] == '=') i += 2; else if (input[i + 1] == '-') .. 2022. 4. 24.