4

프로그래머스/주식가격(스택,큐)/C++

스택, 큐 문제지만 이번에도 스택과 큐 없이 풀었다.. 프로그래머스의 문제 분류는 보면 항상 '그 자료구조를 꼭 써야지 풀리는 문제'라기보다는 '그 자료구조를 써서 풀 수도 있기는 한 문제'인 듯하다. 주의할 점 : '질문하기'를 보면 알 수 있지만, 효율성에 연연하지 않고 정확한 답을 푸는 것에 집중하면 어떻게든 풀린다. 추가할만한 테스트 케이스는 prices가 [1,2,3,2,3,1]인 경우, return값은 [5, 4, 1, 2, 1, 0]이 나와야 한다. #include #include #include using namespace std; int find_smaller(int i, vector &prices){ int index = 0; for(int k = 1; k < (prices.size()..

프로그래머스/기능개발(스택,큐)/C++

스택/큐 분야로 분류되었던 문제이다. 스택이랑 큐를 쓰지 않고도 풀 수 있다는 게 함정이지만! #include #include using namespace std; vector solution(vector progresses, vector speeds) { vector answer; while(true){ for(int i =0; i= 100){ int value = 1; for(int j = 1; j= 100) value++; else break; } answer.push_back(value); progresses.erase(progresses.begin(), progresses.begin()+value); speeds.erase(speeds.begin(), speeds.begin()+value); }..

우선순위 큐의 개념과 구현, 힙의 구현과 응용; 힙정렬

우선순위 큐(priority queue) -> 우선순위를 가진 원소들을 저장하는 큐. 들어온 순서에 상관없이 가장 우선순위가 높은 항목이 삭제됨. 스택이나 FIFO 큐도 우선순위 큐의 특별한 형태라고 볼 수 있음. 최소(min) 우선순위 큐와 최대(max) 우선순위 큐 존재. ▷ ADT create() :: = 우선순위 큐를 생성 init(pq) :: = 우선순위 큐 pq를 초기화 is_empty(pq) :: = 우선순위 큐 pq가 비어있는지 검사 is_full(pq) :: = 우선순위 큐 pq가 가득 찼는지 검사 insert(pq, x) :: = 우선순위 큐 pq에 원소 x를 추가 (x값을 우선순위라고 가정) deleteMin(pq) :: = 우선순위 큐 pq로부터 가장 우선순위가 높은 원소를 삭제하고..

CS/자료구조(DS) 2021.03.29

큐의 구현과 응용; 덱(deque)

큐 -> 먼저 들어온 항목이 먼저 나가는 특수한 선형 리스트, 선입선출(FIFO) 구조. ○ 큐 ADT enqueue(q, item) :: = 새로운 원소 item을 큐 q에 삽입 dequeue(q) :: = 큐가 비어있지 않으면 큐 q에서 원소 삭제 후 반환 peek(q) :: = 큐가 비어있지 않으면 큐 q에서 원소 삭제하지 않고 원소 값만 반환 is_empty(q) :: = 큐가 비어있으면 true, 아니면 false를 반환 is_full(q) :: = 큐가 가득 차 있으면 true, 아니면 false를 반환 size(q) :: = 큐에 있는 원소의 개수를 반환 (length(q)) visit(q) :: = 큐에 있는 모든 원소 출력 (display(q), print(q)) ○ 배열을 이용한 큐 ·..

CS/자료구조(DS) 2021.03.22