[백준] 10828번 : 스택 (C++)

2024. 3. 11. 00:12·Programming/C++ - 백준
반응형

 


문제


풀이

스택(Stack)은 LIFO(Last In First Out, 후입선출) 구조이다.

스택은 컨테이너의 한 쪽 끝에서만 데이터를 삽입하거나 삭제할 수 있다.

따라서, 한쪽 끝이 아닌 위치에 있는 데이터는 접근하거나 변경할 수 없다.

 

스택을 구현하기 위해 std::deque 와 std::stack을 사용할 수 있고, 풀이에 후자를 사용했다.

 

// std::deque를 사용해 stack 구현

#include <deque>
std::deque<int> stk1;
stk1.push_back(1);
stk1.push_back(2);
stk1.pop_back();


// std::stack를 사용해 stack 구현

#include <stack>
std::stack<int> stk2;
stk2.push(1);
stk2.push(2);
stk2.pop();​

코드

#include <iostream>
#include <string>
#include <stack>

using namespace std;

int main() {
	int N, num;
	cin >> N;

	stack<int> st;
	string str;

	for (int i = 0; i < N; i++) {
		cin >> str;

		if (str == "push") {
			cin >> num;
			st.push(num);
		}
		else if (str == "pop") {
			if (st.empty()) {
				cout << "-1" << endl;
			}
			else {
				cout << st.top() << endl;
				st.pop();
			}
		}
		else if (str == "size") {
			cout << st.size() << endl;
		}
		else if (str == "empty") {
			if (st.empty()) {
				cout << "1" << endl;
			}
			else {
				cout << "0" << endl;
			}
		}
		else if (str == "top") {
			if (st.empty()) {
				cout << "-1" << endl;
			}
			else {
				cout << st.top() << endl;
			}
		}
	}
	return 0;
}

결과

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

'Programming > C++ - 백준' 카테고리의 다른 글

[백준] 11866번 : 요세푸스 문제 0 (C++)  (0) 2024.03.13
[백준] 10845번 : 큐 (C++)  (1) 2024.03.11
[백준] 2798번 : 블랙잭 (C++)  (1) 2024.03.10
[백준] 2869번 : 달팽이는 올라가고 싶다 (C++)  (0) 2024.03.07
[백준] 5597번 : 과제 안 내신 분..? (C++)  (0) 2024.03.05
'Programming/C++ - 백준' 카테고리의 다른 글
  • [백준] 11866번 : 요세푸스 문제 0 (C++)
  • [백준] 10845번 : 큐 (C++)
  • [백준] 2798번 : 블랙잭 (C++)
  • [백준] 2869번 : 달팽이는 올라가고 싶다 (C++)
지구코드
지구코드
IT를 공부하고 있는 지구의 코딩공간입니다!
  • 지구코드
    지구의 코딩공간
    지구코드
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 개발 기록
      • [프디아] 파이널 프로젝트
      • Back-end
        • Spring
        • Django
      • Programming
        • 알고리즘
        • C++ - 백준
      • Cloud
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    시간복잡도
    다이내믹 프로그래밍
    백준
    신한투자증권
    k디지털트레이닝
    AWS
    binary_search
    이진탐색
    dp
    부트캠프
    피보나치 수
    구조체 벡터
    별 찍기
    부분 문자열 추출
    프로디지털아카데미
    큐
    Cloud
    정렬
    EC2
    KDT교육
    알파코
    C++
    프디아
    시간초과
    슬라이딩윈도우
    edgelocation
    MSA
    알파코캠퍼스
    awscloudclubs
    fill 함수
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
지구코드
[백준] 10828번 : 스택 (C++)
상단으로

티스토리툴바