https://www.acmicpc.net/problem/1547
arr[0]에 공이 있다고 정해둔다.
arr에 1,2,3을 초기에 순서대로 담아두고, 값이 컵의 번호라고 생각하고 들어오는 숫자의 인덱스를 구해서 두 인덱스에 해당하는 arr값을 스왑해준다.
#include<iostream> using namespace std; int m, arr[3] = { 1,2,3 }; int main(void) { cin >> m; while (m--) { int num1, num2, idx1, idx2; cin >> num1 >> num2; for (int i = 0; i < 3; i++) { if (arr[i] == num1) idx1 = i; if (arr[i] == num2) idx2 = i; } int temp = 0; temp = arr[idx1]; arr[idx1] = arr[idx2]; arr[idx2] = temp; } cout << arr[0] << '\n'; return 0; }
'알고리즘 문제 풀이 > 백준 온라인 저지' 카테고리의 다른 글
백준 5014번: 스타트링크 (C++) (0) | 2019.07.24 |
---|---|
백준 14499번: 주사위 굴리기 (C++) (0) | 2019.07.24 |
백준 2146번: 다리 만들기 (C++) (0) | 2019.07.24 |
백준 1799번: 비숍 (C++) (0) | 2019.07.24 |
백준 15666번: N과 M (12) (C++) (0) | 2019.07.23 |