새소식

💻 Programming (프로그래밍)/C++ | 백준

[C++][백준] - 공 (1547번)

  • -
https://www.acmicpc.net/problem/1547
 

1547번: 공

첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것

www.acmicpc.net

🔔 문제 : 

1, 2, 3번의 컵과 처음에는 1번의 컵에 공이 한개 들어있습니다.

 

컵의 위치를 바꾼 횟수 M번이 주어지고, 각 줄마다 두개의 컵의 숫자가 주어집니다.

이 컵들의 위치를 바꿔가며 최종적으로 공이 들어있는 컵의 숫자를 출력하면 됩니다.

 


🔔 Kick Point :

저는 이해하기 쉽게 cup이라는 bool 자료형 배열에 컵이 들어있으면 true, 아니면 false로 정리했습니다.

 

그 이후엔 간단히 if, else if인 조건문을 사용하여 구하면 되는 문제입니다.

 


🔔 Code :

#include <iostream>
using namespace std;

int main() {
	bool cup[3] = {true, false,};
	int M;
	cin >> M;
	while (M--) {
		int A, B;
		cin >> A >> B; A--, B--;
		if (cup[A]) { cup[A] = false, cup[B] = true; }
		else if (cup[B]) { cup[B] = false, cup[A] = true; }
	}

	for (int i = 0; i < 3; i++) {
		if (cup[i]) cout << ++i;
	}
}

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.