전체 글102 [C/C++] 백준 11286: 절댓값 힙 (구조체와 연산자 오버로딩) https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 절댓값 힙 문제는 최소 힙 문제를 조금 변형시켜면 쉽게 풀 수 있다. 최소 힙 문제에서 priority_queue를 정의할 때 priority_queue queue;를 사용해야 했다면 이 문제에서는 절댓값이 작은 순으로 heap을 정렬시켜야하므로 세번째 자리에 greater 가 아닌 priority_queue queue;와 같은 새로 정의한 구조체를 넣어줘야한다. 참고로 pr.. 2023. 9. 5. [C/C++] 백준 1931: 회의실 배정 (풀이) https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 이 문제는 Greedy 알고리즘 중에서 제일 유명한 문제라고 할 수 있다. 한개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의 중에 회의실을 사용할 수 있는 회의의 최대 개수를 구하면 된다. 결론부터 말하자면 끝나는 시간이 제일 빠른 회의부터 차례대로 진행할 때 회의의 개수가 최대가 된다. 각 경우마다 가장 이득이 되는 선택을 하면 되는데 그 각각의 선택이 전체적으로도 가장 이득이 되는 대표적인 예이다. 구현은 끝나는 시간 순서대로 오름차순으로 정렬을 한다. 이때 한가지 주의해야할 점은 회의의 시작시간과 끝.. 2023. 9. 5. [C++] 기초부터 공부하기 (2. 이차원 배열 정렬 feat.좌표 정렬하기) 지난번에 이어 이번에도 C++ 기초를 공부하려고 한다! 백준 문제를 풀면서 C++에 익숙해지는 것을 첫번째 목표로 두고 있기 때문에 쉬운 문제 위주로 생각하려고 한다. 1) C++ 기초(Vector) 문제를 풀면서 이차원 배열을 사용할 일이 생겼는데 C에서 쓰는 기초적인 이차원 배열을 쓰려고 했더니 C++에는 vector이 있다는 것을 깨닫고 이것에 대한 기초를 조금 알아보고자 한다. 1-1) Vector? vector은 C++ STL(Standard Template Library: 이미 만들어진 탬플릿을 이용하기 위해서 사용됨)에 속하며 배열처럼 원소들을 순서대로 보관하는 Sequence Container에 속한다. 한 문장으로 vector을 정리하자면 "자동으로 메모리가 할당되는 배열"이라고 할 수 .. 2023. 9. 2. [C++] 기초부터 공부하기(1. 기초 & 입출력)! 백준을 100문제 넘게 풀고 골드 문제로 가면서부터 C언어로 PS를 하는데에 한계를 느끼기 시작했다.. 그래서!!! C언어와 매우 유사한 C++을 공부하기로 마음을 먹었다! 이젠 C++을 이용해 알고리즘을 풀거다! 1) C++ 기초 이에 앞서 C와는 다른 C++의 차이점 몇가지를 짚고 넘어가려고 한다. 1-1. std -cout,cin,endl를 포함하여 자주 사용되는 함수들이 정의되어 있는 곳으로 표준라이브러리에 있는 변수 또는 함수들이 std 네임스페이스에 포함되어 있다. 따라서 표준 라이브러리를 사용하기 위해서는 std::를 앞에 붙어야지만 사용할 수 있지만 using namespace std를 이용하면 생략해서 사용이 가능하다. 1-2. 입출력 (cin,cout) 및 \n과의 차이점 입력과 출력을.. 2023. 9. 2. 이전 1 ··· 6 7 8 9 10 11 12 ··· 26 다음