[백준 BOJ] 10845번 큐 (C++/cpp)

2022. 2. 9. 16:43PS (Program Solving)/BOJ (백준)

문제 설명

https://www.acmicpc.net/problem/10845

 

10845번: 큐

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

www.acmicpc.net

백준 BOJ 10845번 큐 문제 사진
백준 BOJ 10845번 큐 문제 사진2

 

접근 방법 - 큐를 이용한 기본 문제

백준의 10845번 문제는 자료 구조 중 큐를 이용한 기본적인 문제이다.

해당 문제는 큐 구조에서 실행 가능한 행위를 모두 갖춘 프로그램을 만들어야 하는 문제이다.

이전에 큐가 아닌 스택 문제와 관련하여 작성한 글이 있다. 아래에 링크를 기재해놓으니, 생소하다면 참고해보는 것도 좋을 것이다.

https://smary-it.tistory.com/78

 

[백준 BOJ] 10828번 스택 (C++/cpp)

문제 설명 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크..

smary-it.tistory.com

C++에는 위처럼 queue 라이브러리가 따로 존재해서, 필자는 이번에도 이를 이용해 문제를 해결하였다.

필자는 아래처럼 코드를 작성하여 문제를 해결하였다.

큐 구조에 대해 알고 있는 상태라면 쉽게 풀 수 있지만, 그렇지 않다면 아래의 코드를 참고해보길 바란다.

 

후기

이 문제도 queue 라이브러리를 이용하면 아주 쉽게 풀 수 있는 문제이다.

하지만 위 링크의 문제와 마찬가지로, 큐를 공부하는 데에 있어선 직접 구현하여 문제를 해결하는 것이 더 올바르다.

따라서 필자는 큐에 대해 추가적으로 공부를 한 뒤, 다음에는 라이브러리 없이 큐 구조를 직접 구현하여 해당 문제를 다시 풀어보고자 한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#include <queue>
#include <string>
#define endl '\n'
using namespace std;

//백준 10845번 코드
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);	// 시간초과로 추가함
	queue<int> q;
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		string ch;
		cin >> ch;
		if (ch == "push") {
			int num;	cin >> num;
			q.push(num);
		}
		else if (ch == "pop") {
			if (q.empty()) { cout << -1 << endl; }
			else {
				cout << q.front() << endl;
				q.pop();
			}
		}
		else if (ch == "size") {
			cout << q.size() << endl;
		}
		else if (ch == "empty") {
			if (q.empty()) { cout << 1 << endl; }
			else { cout << 0 << endl; }
		}
		else if (ch == "front") {
			if (q.empty()) { cout << -1 << endl; }
			else {
				cout << q.front() << endl;
			}
		}
		else if (ch == "back") {
			if (q.empty()) { cout << -1 << endl; }
			else {
				cout << q.back() << endl;
			}
		}
	}
	
}

 

제출 결과

백준 BOJ 10845번 큐 문제 C++ 제출 결과

(2022.01.01 백준 10845번 문제 제출 결과)

반응형