코딩 정복 가즈아~
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
블로그 내 검색

코딩 정복 가즈아~

(っ◔◡◔)っ ♥ 2021 취뽀하자!! ♥

  • 알고리즘 풀이/백준

    [10828] 백준 알고리즘 : 스택(C++) - 공부후

    2019. 11. 15.

    by. 데롱디롱

    728x90

    2019/11/14 - [알고리즘 공부] - [10828] 백준 알고리즘 : 스택

     

    [10828] 백준 알고리즘 : 스택

    첫 알고리즘 문제는 자료구조의 기본이라 할 수 있는 '스택'으로 정했다. 언어는 친구의 추천으로 C++로 정했는데, 하도 오랜만에 쓰니까.. 기억이 진짜 1도 안난다 ㅜㅜ 일단, 명령 개수 n을 받은 다음을 어떻게..

    jisunshine.tistory.com

    역시, 코드를 짜면서도 찜찜했었는데, 배열로 처리하는게 아니였다. ㅜㅜ

    C++에서는 STL Stack을 사용해야 한다고 한다.

     

    생성
    · stack<자료형> 변수명;

    삽입 및 삭제
    · push(값);
    · pop();

    스택 조회
    · top();     ->     가장 위에있는 값 반환
    · empty();     ->     스택이 비어있는지 확인(true/false)
    · size();     ->     스택 사이즈 반환

     

    #include <iostream>
    #include <string>
    #include <stack>
    using namespace std;
    
    void check(stack<int> &st, string str)
    {
    	int num = 0;		// push할 값
    
    	if (str.compare("push") == 0)
    	{
    		cin >> num;
    		st.push(num);
    	}
    	else if (str.compare("pop") == 0)
    	{
    		if (st.empty() == true)
    			cout << -1 << endl;
    		else
    		{
    			cout << st.top() << endl;
    			st.pop();
    		}
    	}
    	else if (str.compare("size") == 0)
    	{
    		cout << st.size() << endl;
    	}
    	else if (str.compare("empty") == 0)
    	{
    		cout << st.empty() ? 1 : 0;
    		cout << endl;
    	}
    	else if (str.compare("top") == 0)
    	{
    		if (st.empty() == true)
    			cout << -1 << endl;
    		else
    			cout << st.top() << endl;
    	}
    }
    
    int main()
    {
    	stack<int> st;
    	string str;
    	int n = 0;
    	cin >> n;		// 명령 수 입력
    
    	for (int i = 0; i < n; i++)
    	{
    		cin >> str;
    		check(st, str);
    	}
    
    	return 0;
    }

     

    코드가 막 심하게 차이나고 그런것은 아니지만,
    배열로 할 땐, size를 알기 위해서 size값을 지니고 있는 변수를 계속 지니고 다녀야했던 반면에
    stack을 include해서 사용하니
    훨씬 간편하게 사용가능했다 :)

    저작자표시 (새창열림)

    '알고리즘 풀이 > 백준' 카테고리의 다른 글

    [10845] 백준 알고리즘 : 큐(C++)  (0) 2019.11.20
    [1874] 백준 알고리즘 : 스택 수열(C++)  (0) 2019.11.20
    [9012] 백준 알고리즘 : 괄호(C++)  (0) 2019.11.20
    [9093] 백준 알고리즘 : 단어 뒤집기(C++)  (0) 2019.11.19
    [10828] 백준 알고리즘 : 스택(C++) - 공부전  (0) 2019.11.14

    댓글

    관련글

    • [1874] 백준 알고리즘 : 스택 수열(C++) 2019.11.20
    • [9012] 백준 알고리즘 : 괄호(C++) 2019.11.20
    • [9093] 백준 알고리즘 : 단어 뒤집기(C++) 2019.11.19
    • [10828] 백준 알고리즘 : 스택(C++) - 공부전 2019.11.14
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

피할 수 없다면, 순간을 즐겨라

Designed by Nana
블로그 이미지
데롱디롱
희희.. (๑′ᴗ‵๑)

티스토리툴바