priority_queue
·
내배캠/C++
우선 순위 큐 priority_queue는 queue와 비슷하지만, 각 요소가 우선순위를 가지며 우선순위가 높은 요소가 먼저 처리되는 자료구조이다. 일반적인 FIFO(First Int First Out) 구조의 queue와는 다르게, 요소의 우선순위에 따라 정렬된 순서로 처리된다.삽입/삭제는 항상 o(long n) 이고, top() 가장 높은 우선순위 원소 조회는 o(1) 이다.그래서 가장 큰/작은 원소를 순식간에 추출해야하는 문제에 최적이다. 특징1. 정렬된 상태 유지:삽입되는 모든 요소는 우선 순위에 따라 자동으로 정렬된다.높은 우선순위의 요소는 큐의 앞쪽에 위치한다.2. 빠른 접근:우선순위를 통해 최대 값 혹은 최소 값을 빠르게 가져올 수 있다.3. Heap 기반 구현:보통 Max-Heap 혹은 M..
priority_queue 우선순위 큐 활용
·
공부/Code Cata
명예의 전당의 최하위 점수를 매일 기록해 반환하는 문제이다.즉 k가 3이라고 한다면 탑3를 매일 선정하고 그 중 최하위 점수를 answer 리스트에 저장해 반환하면 되는 문제인데 예시 경우에는 올바르게 작동했지만, 여러 테스트 케이스를 채첨해봤을 때 오류가 발생했었다.  *초기 오답 코드더보기#include #include #include using namespace std;vector solution(int k, vector score) { vector answer; priority_queue, greater> pq; for(int i = 0; i 0 && score[i] = k) { pq.pop(); pq.push(score..
25.01.03 (금)
·
내배캠/TIL
클래스 상속관계에서 구성관계로 변경#include #include #include #include using namespace std; // namespace std 사용class Book{public: string title; string author; Book(const string& title, const string& author) : title(title), author(author) { }};class BorrowManager{protected: unordered_map stock;private: int quantity;public: // 재고 개수를 3개로 초기화 BorrowManager() : quantity(3) {} // 책의..
대칭되는 문자열 만들기
·
공부/Code Cata
주어진 food 배열을 가지고 규칙에 맞게 왼쪽과 오른쪽이 대칭되는 문자열을 만들어 반환하는 문제였다. *초기 작성 코드#include #include #include using namespace std;string solution(vector food) { string answer = ""; for (int i = 1; i ()); answer += '0' + temp; return answer;}왼쪽을 먼저 규칙에 맞게 만든 후 '0' 과 반대로 정렬한 문자열을 추가해서 완성시키도록 하였다.일단 코드가 길어 가독성 면에서 좋지 않고 2중 for문에 sort까지 사용해서 아쉽다는 생각이 들었다.  *다른 사람 풀이 참고해 수정 ver_1#include #include using n..
25.01.02 (목)
·
내배캠/TIL
도서관 관리 시스템 구현 필수 기능 가이드책 제목으로 검색이 가능해야 합니다.작가로 검색이 가능해야 합니다.책 제목이 동일한 경우는 없다고 가정 합니다.도전 기능 가이드특정 책의 대여 여부를 알 수 있어야 합니다.책의 이름으로 대여 여부를 검색하고 대여가 아닌 경우 대여할 수 있어야 합니다.책의 작가로 대여 여부를 검색하고 대여가 아닌 경우 대여할 수 있어야 합니다.책을 반납할 수 있어야 합니다.모든 책의 재고는 난이도를 낮추기 위해 3권으로 통일 합니다. #include #include #include #include using namespace std; // namespace std 사용class Book{public: string title; string author; Book(co..
람다 함수로 사용자 설정 정의해 정렬하기
·
공부/Code Cata
#include #include #include using namespace std;vector solution(vector strings, int n) { sort(strings.begin(), strings.end(), [n](const string& a, const string& b) { if(a[n] == b[n]) { return a 비교할 인덱스 값 n을 capture해서 람다 함수로 넘겨주어 두 인덱스의 값이 같다면 사전순으로 정렬하고, 같지 않다면 바로 오름차순 정렬하였다. 람다함수[capture](parameters) -> return_type { // function body};capture: 람다 함수 외부의 변수를 가져오는 방식..