반응형

큐(Quene) 란

   : 큐는 먼저 들어간 데이터가 먼저 나오는 구조이다.

     ( FIFO 구조 : First in First Out )

 

큐 배열

   : 데이터를 저장할 큐 배열

저장할 데이터가 정수인 경우 

int queue[10];

10개의 정수를 저장할수 있는 큐배열
저장할 데이터가 문자인 경우

char queue[10];

10개의 문자를 저장할 수 있는 큐배열

 

데이터를 저장할 위치를 알려주는 큐 포인터

    - 데이터를 저장할 위치를 알려주는 포인터 변수 (Tail )

    - 데이터를 꺼내는 곳을 알려 주는 포인터 변수 (Head)

 

Enqueue 함수

   : 큐에서 데이터를 넣어 주는 역할을 하는 함수이다.

   - 데이터를 넣어야 하므로 넣어야 할 데이터를 전달 받을 변수를 인수로 갖는다.

void qnqueue(int data)
{
     queue[++tail] = data;
}

 

Dequeue 함수

   : 큐에서 데이터를 꺼내는 역할을 하는 함수이다.

    - 데이터를 거내야 하므로 꺼낼 데이터를 리턴하기 위해서 Dequeue 함수의 앞에는 형 지정자를 쓴다.

int Dequeue()
{
    int out_data;
    out_data = queue[++head];
    return out_data;
}

 

BFS(Breadth First Search)는 어떻게 실행되나요?

 
  BFS(너비 우선 탐색 방식)은 Queue(큐)를 이용하는 방식으로 보다 많은 자료를 처리할 경우에 적합한 방식이라고 할 수 있습니다.

  DFS(깊이 우선 탐색 방식)은  일단 끝까지 수행을 해보고 나서 리턴되는 방식이라면 BFS방식은 현재 위치에서 무작정 진행하는  DFS방식이 아니라 꼼꼼히 생각해 보고 진행할 것인가를 판단하는 방식이라고 생각해 볼 수 있습니다.

 

[ 문제 1 ] www.acmicpc.net/problem/10845

 

10845번: 큐

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 ��

www.acmicpc.net

 

[ 문제 2 ] www.acmicpc.net/problem/18258

 

18258번: 큐 2

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 

[ 문제 3 ] www.acmicpc.net/problem/2164

 

2164번: 카드2

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

 

[ 문제 4 ]  www.acmicpc.net/problem/11866

 

11866번: 요세푸스 문제 0

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

 

[ 문제5 ] www.acmicpc.net/problem/1966

 

1966번: 프린터 큐

첫 줄에 test case의 수가 주어진다. 각 test case에 대해서 문서의 수 N(100이하)와 몇 번째로 인쇄되었는지 궁금한 문서가 현재 Queue의 어떤 위치에 있는지를 알려주는 M(0이상 N미만)이 주어진다. 다음

www.acmicpc.net

 

반응형
Posted by 명문코딩컴퓨터
,