[백준/C++] 1874번 스택 수열

2021. 12. 5. 22:03·기타

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

 

1874번: 스택 수열

1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.

www.acmicpc.net

// 코드

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

int main(){
    stack<int> s; 
    int N, cnt = 0;
    string c;
    cin >> N;
    int num[N];
    for(int i = 0; i < N; i++) cin >> num[i];
    // 배열에 N개의 수 저장
    for(int j = 0; j <= N; j++){
    // j가 1부터 시작해서 첫번째에 pop()이 선언되면 종료되기 때문에 0부터 시작
        s.push(j); // 스택에 j 삽입
        if (j != 0) c += '+'; // j가 0이 아닐때만 c에 '+' 추가
        while(true)
        {
            if(s.top() == num[cnt]){
            // 스택에 마지막으로 들어간 값이 num[cnt]와 같을때
                c += '-'; // c에 '-' 추가
                s.pop(); // 해당 스택 값 삭제
                cnt++; // cnt 1 증가
            } 
            else break; // 아니라면 while문 종료
        }
    }
    if(cnt < N) cout << "NO"; // cnt
    // 위 반복문이 종료됐는데 cnt == N이 아니라면 만들수없는 수열을 입력한것
    else for(auto a : c) cout << a << '\n';
    // '+' 와 '-'를 저장한 string 출력
    return 0;
}

// 리뷰

다른 부분은 할만하지만 "NO"를 출력하는 부분은 조금 생각해봐야 했다.

입력한 수열이 스택으로 만들 수 있는 수열이라면 N개의 수가 삭제되고 반복문을 나온다.

그러면 cnt와 N이 같지 않다면 만들 수 없는 수열이므로 "NO"를 출력하면 된다.

'기타' 카테고리의 다른 글

[TIL] 2023-12-20  (0) 2023.12.20
[백준/C++] 1436 영화감독 숌  (0) 2022.06.23
[백준/C++] 1259번 팰린드롬수  (0) 2021.12.04
[C++] 여러가지 피라미드 코드 ( 왼쪽 위, 아래 && 오른쪽 위, 아래 )  (2) 2021.12.03
[백준/C++] 5397번 키로거 List  (1) 2021.12.03
'기타' 카테고리의 다른 글
  • [TIL] 2023-12-20
  • [백준/C++] 1436 영화감독 숌
  • [백준/C++] 1259번 팰린드롬수
  • [C++] 여러가지 피라미드 코드 ( 왼쪽 위, 아래 && 오른쪽 위, 아래 )
heyh0
heyh0
  • heyh0
    doblog
    heyh0
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 2025
      • 2024
      • History
      • 기타
  • 블로그 메뉴

    • GitHub
  • 인기 글

  • 태그

    querydsl
    테스트
    AOP
    jpa
    socket
    회고
    redis
    oauth
    Algorithm
    Spring
    Til
    C++
    프로젝트
    동시성
    DB
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
heyh0
[백준/C++] 1874번 스택 수열
상단으로

티스토리툴바