분류 전체보기(87)
-
[바킹독] Deque 정리
바킹독 덱 정리 덱은 Restricted Structure의 끝판왕과 같은 느낌의 자료구조인데, 양쪽 끝에서 삽입과 삭제가 전부 가능합니다. 참고로 자료구조의 덱은 deque고 Double Ended Queue라는 뜻을 가지고 있습니다. 우리가 하스스톤이나 유희왕에서 얘기하는 덱은 Deck라서 발음은 둘 다 덱으로 똑같긴 해도 다른 단어입니다. 아무튼 덱은 양쪽 끝에서 삽입과 삭제가 전부 가능한 자료구조이니 스택과 큐를 덱의 특수한 예시라고 생각해도 괜찮겠습니다. -바킹독- 덱에서도 삽입, 삭제, 제일 앞/뒤 원소의 확인이 다 O(1)입니다. 그리고 제일 앞/뒤가 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능한데 독특하게도 STL deque에서는 인덱스로 원소에 접근할 수 있습니다. STL stac..
2023.03.03 -
[백준 1966] 프린터 큐
우선 순위 큐와 queue pair를 사용 https://velog.io/@jxlhe46/%EB%B0%B1%EC%A4%80-1966%EB%B2%88.-%ED%94%84%EB%A6%B0%ED%84%B0-%ED%81%90 [백준] 1966번. 프린터 큐 PS velog.io https://artiper.tistory.com/72 백준 1966번 프린터 큐 [C/C++] 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다 artiper.tistory.com 큐 페어 관련 글 https://ok4u.tistory.com/82 [Algorithm] Queue,Pair,Vect..
2023.02.27 -
[백준 11866번] 요세푸스 문제 0
나의 첫 접근 이미지 첨부 바람 스택으로는 일일이 접근 못 하니 앞에 있는 것을 뒤로 추가해준다. 이거는 몇 달 전에 본 사고 방식 같다. vector로 풀다 문제 의도를 너무 벗어난 것 같았다. 다른 사람 풀이 참고 K번째 사람--이거는 순서 관련 변수 하나를 정해서 이게 K로 나눠떨어지나 아닌가를 판별하고 K의 배수가 아니면 앞에 원소를 뒤로 추가해준다. int x = Q.front(); Q.pop(); // 뺄 때는 앞이 빠지고 Q.push(x); // 추가해줄 때는 뒤로 추가가 된다. 나는 무작정 K-1번 for문 돌리고 pop 하였는데 그것보다 K로 나눠떨어지는지 확인해주고 조건 처리해주는게 좀 더 깔끔해보인다. 최종 정답 코드 풀이방법 : 1. 사람을 모두 제거할 때까지 loop를 돕니다. 2..
2023.02.25 -
큐 강의 정리
큐(Queue) 스택은 LIFO 큐는 FIFO STL Queue에는 인덱스를 가지고 내부 원소 접근하는 기능이 없어 큐는 한쪽 끝에서 원소를 넣고 반대쪽 끝에서 원소를 뺄 수 있는 자료구조입니다. 스택에서는 먼저 들어간 원소가 나중에 나왔는데 큐에서는 먼저 들어간 원소가 먼저 나오게 됩니다. 공항에서 입국수속을 하는 줄과 같은 상황이라고 볼 수도 있습니다. 스택을 FILO(First In Last Out)이라고 한 것과 비슷하게 큐를 FIFO(First in First Out)이라고 하기도 합니다. -바킹독- 큐에서 연산의 시간복잡도를 보면 스택처럼 원소의 추가와 제거가 모두 O(1)입니다. 스택에서는 보통 원소가 추가되고 제거되는 곳을 top이라고 부르고, 원소가 위 아래로 배치된 것으로 생각을 많이 ..
2023.02.24 -
[백준 9012번] 괄호
백준 4949번과 비슷한데 4949번보다는 좀 간단해 #include #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int T; cin >> T; cin.ignore(); for (int i = 0; i < T; i++) { string input; getline(cin, input); // 입력 받고 stack s; bool flag = 0; // 전역 변수를 이용 // 문자형 배열에 문자열의 문자 하나하나 넣어주기 for (int i = 0; i < input.length(); i++) { char c = input[i]; // (는 push )는 push 말고 상대방을 pop if ((c..
2023.02.18 -
yes 입력 종료
yes를 입력하면 종료하는 프로그램이지 yes까지 입력 받는 프로그램이 아님! #include #include using namespace std; int main() { char A[] = "yes"; // 배열 선언시 "yes"로 초기화 char B[100]; while (true) { cout
2023.02.18