SMALL

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

 

23253번: 자료구조는 정말 최고야

위 그림처럼 책이 쌓여 있으므로, 첫 번째 더미 - 두 번째 더미 - 첫 번째 더미 - 두 번째 더미 순으로 꺼내면 책 번호순으로 나열할 수 있다.

www.acmicpc.net


  • 문제


  • 문제풀이

처음에는 스택 안에 스택을 만들어보고자 했으나 어떻게 해야할지 몰랐다. 하지만 책을 순서대로 꺼내기 위해서는 아래의 책이 위의 책보다 작은 숫자임을 알게 되었다. 교과서의 최대 개수가 200000이기 때문에 test를 200001로 설정하여 높은 수가 낮은 수 보다 먼저 입력받으면 false로 만들어 yes와 no를 출력하게 하였다.


  • 코드 1
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>



int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    bool result = true;
    for (int i = 0; i < m; i++) {
        int c;
        scanf("%d", &c);
        int book[200001];
        int test1 = 200001;
            for (int k = 0; k < c; k++) {
                scanf("%d", &book[k]);
                if (book[k]>test1) {
                    result = false;
                }
                test1 = book[k];
        }
    }
    if (result) {
        printf("Yes");
    }
    else {
        printf("No");
    }
    
}

  • 후기

너무 스택으로만 풀려고 하다보니 간단한 문제임을 놓친것 같다.

LIST

+ Recent posts