반응형
DoZZang
Do IT
DoZZang
전체 방문자
오늘
어제
  • Programming
    • Git
    • Web
    • 기타
    • Python
      • CodeUp
    • Math
    • Algorithm
    • Baekjoon
    • C,C++
    • Life
      • 독서
      • Just
      • 영화

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DoZZang

Do IT

[C++] 10845 : 큐/18258 : 큐2
Baekjoon

[C++] 10845 : 큐/18258 : 큐2

2024. 3. 6. 19:55
반응형

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

 

10845번: 큐

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

www.acmicpc.net

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

 

18258번: 큐 2

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

www.acmicpc.net

풀이

큐는 기본기본기본 문제라 정말 쉽게 풀 수 있을 듯합니다. STL을 사용하지 않아도 배열로 구현하여도 구현이 간단합니다.

큐2 문제를 봤을 때 정말 처음에는 원형 큐를 의도한 것인가 생각하였지만

아무리 생각해도 주어진 범위에서 시간 복잡도와 공간 복잡도를 초과하지 않을 것 같다는 생각을 하여서 그냥 제출하였더니 결과는 통과였습니다.

다른 분들의 블로그를 참고하니 C++에서 입/출력의 시간을 줄여주는

 

ios::sync_with_stdio(0); cin.tie(0);

을 사용하지 않아 입력과 출력에서도 시간이 소비되어 시간 초과가 나거나 개행 문자를 사용하지 않고 endl을 사용하여

시간초과가 나는 경우가 있었습니다!

 

바킹독 강좌로 공부하는 저는 그럴 일이 없었습니다. 우하하

 

정답 코드

#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(0); cin.tie(0);
	int N;
	cin >> N;
	queue<int> q;
	while (N--) {
		string s;
		cin >> s;
		if (s == "push") {
			int num;
			cin >> num;
			q.push(num);
		}
		if (s == "pop") {
			if (q.empty())
				cout << -1 << '\n';
			else {
				cout << q.front() << '\n'; q.pop();
			}}
		if (s == "size") {
			cout << q.size() << '\n';
		}
		if (s == "empty") {
			cout << (q.empty() ? 1 : 0) << '\n';
		}
		if (s == "front") {
			if (q.empty())cout << -1 << '\n';
			else {
				cout << q.front() << '\n';
			}}
		if (s == "back") {
			if (q.empty())cout << -1 << '\n';
			else {
				cout << q.back() << '\n';
			}}
	}
}

 

반응형
저작자표시 (새창열림)

'Baekjoon' 카테고리의 다른 글

[C++] 1021번 : 회전하는 큐  (0) 2024.03.08
[C++] 2164번: 카드2  (0) 2024.03.07
[C++] 2493번 : 탑  (0) 2024.03.05
[C++] 1874번 : 스택 수열  (2) 2024.03.05
[C++] 10773번 : 제로  (0) 2024.03.03
    'Baekjoon' 카테고리의 다른 글
    • [C++] 1021번 : 회전하는 큐
    • [C++] 2164번: 카드2
    • [C++] 2493번 : 탑
    • [C++] 1874번 : 스택 수열
    DoZZang
    DoZZang
    과정은 힘들지만 성장은 즐겁습니다.

    티스토리툴바