#68. [백준_C언어] 1021 : 회전하는 큐 \ 자료구조

 

입력 코드

#include <stdio.h>
int q[451];
int main() {
	int head,tail,i,j,n,m,cnt=0,x;

	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++) q[200+i]=200+i;
	head=201; tail=200+n;
	for(i=1;i<=m;i++) {
		scanf("%d",&x);
		x+=200;
		for(j=head;j<=tail;j++) {
			if(q[j]==x) {x=j; break;}
		}

		if(x<=(head+tail)/2) {
			while(head!=x) {
				q[++tail]=q[head];
				cnt++; head++;
			}
			head++;
		}
		else {
			while(1) {
				q[--head]=q[tail];
				cnt++;
				if(tail==x) break;
				tail--;
			}
			tail--;
			head++;
		}
	}
	printf("%d",cnt);
}

출처 www.acmicpc.net/source/2701255

 

 

 

코드 설명

#자료구조 #덱

 

 

References

blog.naver.com/gkfla1017/222229550344

 

[백준 알고리즘]1021번: 회전하는 큐_Java

문제 설명문제 출처: https://www.acmicpc.net/problem/1021[문제]지민이는 N개의 원소를 포함하고 있는 ...

blog.naver.com

 

 

문제 출처

www.acmicpc.net/problem/1021

 

1021번: 회전하는 큐

첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가

www.acmicpc.net