알고리즘 모음(C++)

백준 10811 - 바구니 뒤집기(C++) 본문

백준

백준 10811 - 바구니 뒤집기(C++)

공대생의 잡다한 사전 2023. 10. 14. 00:00

문제 링크입니다. https://www.acmicpc.net/problem/10811

10811번: 바구니 뒤집기

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

www.acmicpc.net

주어진 범위의 배열을 뒤집을 수 있는지 물어보는 문제입니다.
reverse를 사용하면 쉽게 풀 수 있지만, 구현하는 코드를 따로 적어놨으니 참고 부탁드립니다.


자세한 것은 코드를 참고해주세요.

#define _CRT_SECURE_NO_WARNINGS
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
#include <deque>

using namespace std;

int N, M;
int arr[101];
int Copy[101];

int main() {
	cin.tie(0);
	cout.tie(0);
	cin >> N >> M;
	for(int i = 1; i <= N; i++) arr[i] = i;
	for(int i = 1; i <= M; i++){
		int x, y;
		cin >> x >> y;
		reverse(arr+x, arr+y+1);
		//for(int j = 0; j <= y-x; j++){ //reverse 코드 구현 부분
		//	Copy[x+j] = arr[y-j];
		//}
		//for(int j = x; j <= y; j++) arr[j] = Copy[j];
	}	
	for(int i = 1; i <= N; i++) cout << arr[i] << " ";
	return 0;
}


질문 및 조언은 댓글을 남겨주세요.

'백준' 카테고리의 다른 글

백준 25305 - 커트라인(C++)  (0) 2023.10.23
백준 2566 - 최댓값(C++)  (0) 2023.10.22
백준 10813 - 공 바꾸기(C++)  (0) 2023.10.13
백준 10810 - 공 넣기(C++)  (0) 2023.10.13
백준 13903 - 출근(C++)  (0) 2023.10.10