관리 메뉴

cyphen156

백준-1차원 배열 10811 바구니 뒤집기 본문

카테고리 없음

백준-1차원 배열 10811 바구니 뒤집기

cyphen156 2024. 9. 14. 14:14

10811번: 바구니 뒤집기 (acmicpc.net)

 

N개의 바구니가 오름차순으로 정렬되어 있는데, (i ~ j)번 바구니를 M회 입력받아 순서를 역순으로 바꾼다. 

출력은 왼쪽부터 순서대로 출력한다.

제약사항

  • 0 < N, M <= 100
  • 0 < i <= j <= N

주의 사항

C 풀이

바구니 뒤집기_10811.c

/**
* 백준 1차원 배열 10811 바구니 뒤집기
* N개의 바구니가 오름차순으로 정렬되어 있는데, (i ~ j)번 바구니를 M회 입력받아 순서를 역순으로 바꾼다. 
* 출력은 왼쪽부터 순서대로 출력한다.
*
* 제한사항
*****************************************
* 0 < N, M <= 100                       *
* 0 < i <= j <= N                       *
*****************************************
*
*
*
* 주의
* 
*
* 풀이시간 10분
*/

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int N, M, i, j;
    scanf("%d%d", &N, &M);

    //배열 생성 및 초기화
    int* arr = (int*)malloc((N + 1) * sizeof(int));
    for (int t = 0; t < N+1; ++t)
    {
        arr[t] = t;
    }

    for (int t = 0; t < M; ++t)
    {
        scanf("%d%d", &i, &j);
        while (i < j)
        {
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
            i++;
            j--;
        }
    }

    for (int t = 1; t < N+1; ++t)
    {
        printf("%d ", arr[t]);
    }
    free(arr);
    return 0;
}

C++ 풀이

바구니 뒤집기_10811.cpp

/**
* 백준 1차원 배열 10811 바구니 뒤집기
* N개의 바구니가 오름차순으로 정렬되어 있는데, (i ~ j)번 바구니를 M회 입력받아 순서를 역순으로 바꾼다. 
* 출력은 왼쪽부터 순서대로 출력한다.
*
* 제한사항
*****************************************
* 0 < N, M <= 100                       *
* 0 < i <= j <= N                       *
*****************************************
*
*
*
* 주의
* 
*
* 풀이시간 5분
*/

#include <iostream>
#include <vector>

using namespace std;

int main() 
{
    int N, M, i, j;
    cin >> N >> M;

    vector<int> arr;

    for (int t = 0; t < N+1; ++t)
    {
        arr.push_back(t);
    }

    for (int t = 0; t < M; ++t)
    {
        cin >> i >> j;
        for (int IDX = i; i < j; ++i, --j)
        {
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }

    for (int t = 1; t < N+1; ++t)
    {
        cout << arr[t] << " ";
    }
    return 0;
}

 

모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.

Workspace/알고리듬 풀이 at main · cyphen156/Workspace · GitHub

 

Workspace/알고리듬 풀이 at main · cyphen156/Workspace

Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.

github.com