반응형
Notice
Recent Posts
Recent Comments
Link
지구정복
[자료구조] 백준 - 큐 본문
728x90
반응형
https://www.acmicpc.net/problem/10845
-문제해설
저번 포스팅인 스택과 비슷한 문제인 큐를 구현하는 문제이다.
스택에서는 ArrayList를 사용했는데 이번에는 배열을 사용해서 풀어봤다.
전역변수로 큐를 나타낼 배열과 배열의 인덱스값인 idx를 선언했다.
특히 pop할 때 배열의 값들을 앞으로 한 칸씩 땡기고 idx값도 -1을 해줌으로써 구현할 수 있었다.
파이썬은 편한게 그냥 pop( index ) 메소드사용하면 한 칸씩 땡길 필요가 없다.
-자바
package dataStructure;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BJ10845 {
static String[] que;
static int idx;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer();
int n = Integer.parseInt( br.readLine() );
que = new String[n];
String order;
while( n --> 0 ) {
order = br.readLine();
switch( order.charAt(0) ) {
case 'p':
if( order.charAt(1) == 'u' ) que[idx++] = order.substring( 5 );
else {
if( idx == 0 ) sb.append( "-1\n" );
else {
sb.append( que[0] + "\n" );
for( int i=0; i<idx-1; i++ ) que[i] = que[i+1];
que[--idx] = null;
}
}
break;
case 's':
sb.append( idx+"\n" );
break;
case 'e':
if( idx == 0 ) sb.append( "1\n" );
else sb.append( "0\n" );
break;
case 'f':
if( idx == 0 ) sb.append( "-1\n" );
else sb.append( que[0] + "\n" );
break;
case 'b':
if( idx == 0 ) sb.append( "-1\n" );
else sb.append( que[idx-1] + "\n" );
break;
}
}//while end
System.out.println( sb );
}
}
-파이썬
from sys import stdin
que = []
next( stdin )
for line in stdin:
Order = line.split()
if Order[0]=="push":
que.append( Order[1] )
elif Order[0]=="pop":
if que: print( que.pop(0) )
else: print( "-1" )
elif Order[0]=="size":
print( len(que) )
elif Order[0]=="empty":
if que: print( "0" )
else: print( "1" )
elif Order[0]=="front":
if que: print( que[0] )
else: print( "-1" )
elif Order[0]=="back":
if que: print( que[-1] )
else: print( "-1" )
728x90
반응형
'데이터 엔지니어링 정복 > Algorithm' 카테고리의 다른 글
[자료구조] 백준 - 요세푸스 문제 0 (0) | 2021.07.30 |
---|---|
[자료구조] 백준 - 덱 (0) | 2021.07.29 |
[자료구조] 백준 - 스택 (0) | 2021.07.29 |
[이분탐색, 자료구조] 백준 - 숫자 카드 2 (0) | 2021.07.29 |
[자료구조] 백준 - 괄호 (0) | 2021.07.29 |
Comments