[바킹독의 실전 알고리즘] 0x06 - 큐

오젼·2023년 7월 18일
0

강의

https://www.youtube.com/watch?v=D_fwSy5tRAY&list=PLtqbFd2VIQv4O6D6l9HcD732hdrnYb6CY&index=7

특징

FIFO 자료구조. 선입선출
원소 추가 제거 O(1)

구현

const int Mx = 1000005;
int dat[MX];
int head = 0, tail = 0;

void push(int x) {
	dat[tail++] = x;
}

void pop() {
	head++;
}

int front() {
	dat[head];
}

int back() {
	return dat[tail - 1];
}

코딩테스트에선 push의 최대횟수가 정해져 있어서 굳이 원형 큐로 만들지 않아도 된다.
선형배열을 크게 만들면 됨.

문제

10845

간단한 큐 문제
이건 직접 만든 큐로 풀어봤다

18258

간단한 큐 문제2
이건 STL 큐로 풀어봤다
파이썬으로 풀었던 문젠데 시간이 ㄷㄷ 완전 줄어듦
코테연습은 c++로..
근데 ios::sync_with_stdio(0) cin.tie(0) 안 하니까 시간 초과 났었음
입출력 동기화를 끊어주면 속도 차이가 진짜 큰가 보다

2164

흠 큐 문제인 줄 몰랐으면 괜히 꼬아서 생각했을 것 같다.
쌓여진 숫자에서 pop하고 뒤로 보내는 일을
남은 숫자가 1보다 클 때까지만 반복해야 하니까
결국은 숫자를 다 담은 상태에서 시작할 수밖에 없는 문제

0개의 댓글