View

반응형

 

알고리즘 분류: 구현, 시뮬레이션

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

 

10811번: 바구니 뒤집기

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

www.acmicpc.net

 

 

【 풀이 】

 

벡터에 1 ~ N 의 숫자를 push_back 하고

start와 end 변수를 받아주고 그 범위를 reverse 함수를 이용해 뒤집어주면 된다.

단 end는 그대로 쓰지만, 0번째 인덱스부터 접근해야 하기 때문에 start는 -1을 한 값을 이용해야 한다.

 

 

【 코드 】

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

int main() {
	int N, M;
	cin >> N >> M;
	
	vector<int>v;
	
	for (int i = 1; i <= N; i++) 
		v.push_back(i);
	
	for (int i = 0; i < M; i++) {
		int start, end;
		cin >> start >> end;
		reverse(v.begin() + (start - 1), v.begin() + end);
	}

	for (int i = 0; i < N; i++)
		cout << v[i]<<" ";

	return 0;
}

728x90
반응형
Share Link
reply
250x250
반응형
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31