Algorithm/문제 풀이 / / 2020. 1. 27. 18:33

[JUNGOL_1697 - JAVA] 큐(queue)

반응형

1697 : 큐(queue)

제한시간1000 ms    메모리제한32 MB    해결횟수2732 회    시도횟수5055 회    

문제

큐는 먼저 들어온 데이터가 먼저 출력된다. 

이러한 구조를 선입선출(FIFO - First In First Out)이라고 한다.

이러한 큐 자료구조는 보통 우리의 생활에서는 매우 일상적인 자료구조이다. 

큐 자료구조의 형태를 가장 흔히 볼 수 있는 게 “줄서기”가 될 것이다. 

은행 창구에서 줄을 서거나, 버스를 기다리기 위해서 줄을 설 경우 가장 먼저 줄을 선 사람이 가장 먼저 은행 업무를 처리하거나, 

버스를 타게 된다.(새치기 하는 경우는 생각하지 말자)

그림과 같은 큐 자료구조를 설계하고, 처리조건에 맞는 출력을 하시오.

 


 

≪처리조건≫
1. 주어지는 명령은 다음의 3가지이다.
2. "i a"는 a라는 수를 큐에 넣는다. 이때, a는 10,000 이하의 자연수이다.
3. "o"는 큐에서 데이터를 빼고, 그 데이터를 출력한다. 만약 큐가 비어있으면, "empty"를 출력한다.
4. "c"는 큐에 있는 데이터의 수를 출력한다.

 

입력형식

첫줄에 N이 주어진다. N은 주어지는 명령어의 수이다.(1≤N≤100) 둘째 줄부터 N+1줄까지 한 줄에 하나씩 명령이 주어진다.

 

출력형식

각 명령에 대한 출력 값을 한 줄에 하나씩 출력한다. 출력내용이 하나도 없는 경우는 주어지지 않는다.

 

 

import java.util.Scanner;

public class Main {
	private static Scanner sc;
	public static int[] result;

	public static void main(String[] args) {
		sc = new Scanner(System.in);

		// stack
		int stack[] = new int[100]; // 배열
		int top = 0; // 스택의 층
		int bottom = 0;

		// 명령의 수
		int N = sc.nextInt();

		// 명령
		String cmd;

		sc.nextLine(); // 개행문자 제거
		for (int i = 0; i < N; ++i) {
			cmd = sc.nextLine(); // 명령 입력

			// insert
			if ('i' == (cmd.toCharArray()[0])) {
				/*
				 * 명령과 공백을 제외한 2번부터 값 입력 문자형으로 받은 문자를 Integer.parseInt 활용 10진수 'int'형으로 변환
				 */
				stack[top++] = Integer.parseInt(cmd.substring(2));

				// out
			} else if ("o".equals(cmd)) {
				if (stack[bottom] == 0) // bottom의 값이 0이라면 empty 출력
					System.out.println("empty");
				else
					System.out.println(stack[bottom++]); //bottom 값 증가

				// count
			} else if ("c".equals(cmd)) {
				System.out.println(top - bottom); // top-bottom의 사이즈 = 층의 갯수
			}
		}
	}
}

 

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=970&sca=2070

 

JUNGOL | 큐(queue) > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

반응형

'Algorithm > 문제 풀이' 카테고리의 다른 글

[BAEKJOON_2161 - JAVA] 카드1  (0) 2020.02.02
[BAEKJOON_1547 - JAVA] 공  (0) 2020.02.02
[JUNGOL_1102 - JAVA] 스택  (0) 2020.01.27
[JUNGOL_1309 - JAVA] 팩토리얼  (0) 2020.01.27
[JUNGOL_2604 - JAVA] 그릇  (0) 2020.01.25
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유