프로그래밍/백준(BOJ)

[백준(BOJ) / C][Bronze Ⅱ] 10811번 : 바구니 뒤집기

데굴데굴이 2024. 2. 12. 12:12
반응형

문제

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

 

10811번: 바구니 뒤집기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2

www.acmicpc.net


풀이 

간단한 배열 Swap 문제


소스코드

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

void Swap(int* _arr, int _left, int _right);

int main(void)
{
	int N, M;
	int left, right;
	int* arr;
	
	scanf("%d %d", &N, &M);
	
	arr = (int*)malloc(sizeof(int) * N);
	
	for(int i = 0; i < N; i++)
	{
		arr[i] = i + 1;
	}
	
	for(int i = 0; i < M; i++)
	{
		scanf("%d %d", &left, &right);
		
		Swap(arr, left-1, right-1);
	}
	
	for(int i = 0; i < N; i++)
	{
		printf("%d ", arr[i]);
	}
	
	free(arr);
	
	return 0;
}

void Swap(int* _arr, int _left, int _right)
{
	if(_left == _right) return;
	
	int temp;
	
	while(_left < _right )
	{	
		temp = _arr[_left];
		
		_arr[_left] = _arr[_right];
		_arr[_right] = temp;
		
		++_left;
		--_right;
	}
}
반응형