목록코딩테스트/c++ (17)
웅재의 코딩세상

1. 손으로 풀어보기 2. 코드 구현하기 #include #include #include #include using namespace std; struct compare{ bool operator()(int o1, int o2){ int first_abs = abs(o1); int second_abs = abs(o2); if(first_abs == second_abs){ return o1 > o2; //절댓값의 값이 같으면 음수 우선 정렬 } else{ return first_abs > second_abs; //절댓값을 기준으로 정렬 } } }; int main(){ //우선순위 queue 선언 방식 : priority_queue ABS_queue; int N; cin >> N; for(int i=0; ..

1. 손으로 풀어보기 2. 코드 구현하기 1 #include #include #include #include using namespace std; int card_game(queue card); int main(){ int N; cin >> N; queue card; int result=0; for(int i=1; i N; queue card; int result=0; for(int i=1; i 1){ card.pop(); card.push(card.front()); card.pop(); } cout

1. 손으로 풀어보기 2. 코드 구현하기 #include #include #include #include using namespace std; int main(){ int N; cin>>N; vector A(N,0); vector result(N,0); for(int i=0; i> A[i]; } stack aStack; aStack.push(0); // 스택에 0 push for(int i=1; i

손으로 풀어보기 2. 코드 구현하기 #include #include #include #include using namespace std; int main(){ int N; cin >> N; vector idx(N,0); vector answer; stack aStack; for(int i=0; i> idx[i]; } int num=1; bool result = true; for(int i=0; i=num){ while(idx[i]>=num){ aStack.push(num++); answer.push_back('+'); } aStack.pop(); answer.push_back('-'); } else{ if(aStack.top() > idx[i]){ cout

스택과 큐는 배열보다 발전한 형태로 서로 구조는 비슷하지만 처리 방식이 다릅니다. 스택(stack) 삽입과 삭제 연산이 후입선출로 이루어지는 자료구조이다. 삽입과 삭제 연산이 한쪽에서만 일어나는 특징을 가지고 있다. 깊이 우선 탐색(Depth First Search), 백 트래킹 종류에 효과적이다. 후입선출은 재귀 함수 알고리즘 원리와 개념 자체가 비슷하다. push : top위치에 새로운 데이터를 삽입하는 연산 pop : top위치에 현재 있는 데이터를 지우는 연산이다. top : top 위치에 현재 있는 데이터를 확인하는 연산이다. 큐(queue) 삽입과 삭제 연산이 선입 선출로 이루어지는 자료구조이다. 삽입과 삭제가 양방향에서 이루어진다. 새 데이터의 삽입은 back에서 이루어지고 기존 데이터의 삭..

1. 손으로 풀어보기 2. 코드 구현하기 #include #include using namespace std; typedef pair Node; int main(){ int N,L; cin >> N >> L; deque dq; for(int i = 0; i> num; while(dq.size() && dq.back().first > num){ dq.pop_back(); }//현재 수보다 큰 값이 들어오면 dq에서 제거한다. dq.push_back(Node(num,i)); // dq 뒤에 num과 인덱스 번호를 같이 넣어준다. if(dq.front().second