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

코딩 정복 가즈아~

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

  • 알고리즘 풀이/백준

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

    2019. 11. 14.

    by. 데롱디롱

    728x90

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

    일단, 명령 개수 n을 받은 다음을 어떻게 짜야할지 막막했다.
    (역시 알고리즘을 1도 안 해본 티가 났다..)

    n만큼 for loop를 돌며, 명령어를 읽어오고
    이 명령어에 따라 처리를 하는 방법으로 방향을 잡았다.

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

    여기서 고비는...
    stack배열에 몇개나 들어있는지 어떻게 가져올지를 몰라서, 그냥 크기를 저장해 둔 변수 num을 만들어버렸다.

    후후.. 맞았당!!~^^
    코드가 뭔가 비효율적인 것 같긴 한데, 일단 풀었으니 다른 사람 풀이랑 비교해봐야겠다 ㅎㅎ

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

     

    저작자표시 (새창열림)

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

    [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.15

    댓글

    관련글

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

Today

Total

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

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

티스토리툴바