컴굥일지
[BOJ/백준 1547][C++] 공 본문
반응형
백준 1547 공
문제 링크
https://www.acmicpc.net/problem/1547
문제 내용
컵 1,2,3이 있고, 공의 위치는 초기 1번 컵의 위치이다. 입력받은 숫자는 컵의 "번호" 이므로, 해당 번호의 컵을 찾아 위치를 바꿔주면 된다.
코드
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int m; cin >> m;
int arr[4] = {0,1,2,3}; //인덱스는 컵의 번호, 배열의 원소는 컵의 위치
for (int i = 0; i < m; i++) {
int first, second;
cin >> first >> second;
swap(arr[first], arr[second]); //인덱스(컵의 번호)의 값(위치)를 바꿔준다
}
int i = 1;
while (true) {
if (arr[i] == 1) { //컵의 위치가 1인 컵이 공이 들어있는 컵이다.
cout << i << '\n';
break;
}
i++;
}
return 0;
}
느낀점
맨 처음에는 인덱스를 컵의 위치, 값을 컵의 번호로 두고 풀었었는데, 그러면 입력받아서 처리하는 과정에 조건문을 여러번 쓰게 되어서 바꾸어 풀었다. 풀이를 생각하는 것이 힘들었다.
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[BOJ/백준 2993][C++] 세 부분 (0) | 2021.07.11 |
---|---|
[BOJ/백준 1008][C++] A/B (0) | 2021.07.11 |
[BOJ/백준 1158][C++] 요세푸스 문제 (0) | 2021.07.11 |
[BOJ/백준 10804][C++] 카드 역배치 (0) | 2021.07.11 |
[BOJ/백준 15552][C++] 빠른 A+B (0) | 2021.07.11 |
Comments