본문 바로가기

pair4

[백준문제풀이] 1966 프린터 큐 풀이일시 : 2020-10-17 ​ 문제 : 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 1. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 2. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 .. 2021. 1. 2.
[개념정리] deque container deque container란 deque는 vector container의 단점을 보완하기 위해서 만들어진 container이다. vector와 마찬가지로 list구조. vector는 새로운 원소가 추가될 때 메모리 재할당 후 이전원소를 복사하는 방식으로쓰여 삽입,제거 시 성능이 저하되었다. 이에 deque는 여러개의 메모리 블록을 할당하고 하나의 블록처럼 여기는 기능을 제공한다. - deque는 메모리가 부족할때마다 일정한 크기의 새로운 메모리블록을 할당함으로써 이전 원소를 복사X ​ deque 사용 #include 선언 deque변수명 dequedq; 사용 dq.front() //첫번째 원소를 참조 dq.back() //맨 마지막 원소를 참조 dq.clear() //모든 원소를 제거 dq.assign.. 2020. 12. 26.
[개념정리] tuple tuple 이란 std::tuple로 std::pair를 확장한 자료형이다. 객체의 제한이 없이 묶을 수 있다. ​ tuple의 사용 #include 선언 queue q1; vector v; 만들기 q1.push({1,2,3}); v.push_back({1,2,3}); // or q1.make_tuple(1,2,3); 값추출 1. tie : tuple의 복수의 타입 인자값을 추출할 수 있다. int a,b,c; //(담을 변수들을 선언) tie(a,b,c)=q1; //로 추출가능 또는 여러 벡터로 구성되어있다면 vector v; tie(a,b,c)=v[i]; 로 원하는 위치의 tuple을 추출할 수 있을것이다. ​ 2. get : 몇 번재 타입을 얻고싶은지 선택하여 추출할 수 있다. cout 2020. 12. 26.
[개념정리] Pair Pair 클래스란 - 두 객체를 하나의 객체로 취급 할 수 있게 묶어주는 클래스 (쌍 을 표현할 때 사용) - 헤더에 존재 ​ Pair 생김새는 - template struct pair - T1 : first, T2 : second ​ Pair 사용법 - queue 에서 pair 사용 : queue q1; queue q2; 와 같이 선언할 수 있다. q1.push( {1,2} ); q2.push( { {1,a} ,2} ); 와 같이 사용할 수 있다. {1,2} 와 같이 사용하였는데, 실제로는 make_pair(1,2) 이다. 동일하게 사용된다. ​ 위에서 queue에 push 해주었는데 인자를 반환하여 사용하려면 다음과 같이 될것이다. q1.front().first => .. 2020. 12. 26.
반응형