백준

백준 10811번: 바구니 뒤집기 (C언어)

NamDoHyeon 2023. 7. 18. 14:05

백준 10811번: 바구니 뒤집기 링크

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

문제를 풀기 전 생각한 것

배열의 크기 정하기
바구니를 어떻게 역순으로 만들지

풀면서 어려웠던 점

어떻게 뒤집어야 할지 생각이 나지 않았다

코드

#include <stdio.h>

int main(void)
{
    int basket[101] = {0,};
    int N,M,i,j;
    int temp;

    scanf("%d %d", &N, &M);

    for (int a = 0; a < N; a++){
        basket[a] = a+1;
    }

    for (int b = 0; b < M; b++){
        scanf("%d %d", &i, &j);
        for (int c = i-1; c < j; c++){
            temp = basket[c];
            basket[c] = basket[j-1];
            basket[j-1] = temp;
            j--;
        }
    }

    for (int d = 0; d < N; d++){
        printf("%d ", basket[d]);
    }

    return 0;
}

풀면서 배운 점

i를 하나씩 더하면서 j를 하나씩 빼주면 된다
ex)
i,j = 0 5 -> 1 4 -> 2 3
result = 1 2 3 4 5 -> 5 2 3 4 1 -> 5 4 3 2 1

반응형