반응형
https://www.acmicpc.net/problem/20361
20361번: 일우는 야바위꾼
첫째 줄에 N (3 ≤ N ≤ 200,000), X (1 ≤ X ≤ N), K (1 ≤ K ≤ 100,000)가 공백으로 구분되어 주어진다. 둘째 줄부터 K개의 줄에는 순서대로 바꾼 두 컵의 위치 Ai, Bi (1 ≤ Ai, Bi ≤ N, Ai ≠ Bi)가 공백
www.acmicpc.net
swap 함수를 사용해보는 간단한 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
컵 개수 n, 공 위치 ballPos, 바꾼 횟수 k, 정답을 출력할 ans, 각 컵의 위치 vector cups를 선언한 후 적절히 입력받습니다.
cups의 원소는 초기에 i번째 index에 i번째 컵이 있다고 생각해 for loop를 수행하면서 해당값을 저장합니다.
📔 풀이과정
1. 이후 k마다 a, b번째 컵을 맞바꾼다는 의미로 입력을 받고 cups의 a, b원소를 바꿔줍니다.
2. 이후 cups의 원소들을 모두 확인하며 ballPos라면 ans에 index를 저장하고 loop를 탈출합니다.
📔 정답출력
ans를 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int n, ballPos, k, ans;
vector <int> cups;
int main(){
cin >> n >> ballPos >> k;
cups.resize(n+1);
for(int i = 1; i <= n; i++){
cups[i] = i;
}
for(int i = 0, a, b; i < k; i++){
cin >> a >> b;
swap(cups[a], cups[b]);
}
for(int i = 1; i <= n; i++){
if(cups[i] == ballPos) {
ans = i;
break;
}
}
cout << ans;
}
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 25238 : 가희와 방어율 무시 (0) | 2022.06.07 |
---|---|
(C++) - 백준(BOJ) 23037 : 5의 수난 (0) | 2022.06.05 |
(C++) - 백준(BOJ) 10384 : 팬그램 (0) | 2022.05.24 |
(C++) - 백준(BOJ) 14709 : 여우 사인 (0) | 2022.05.20 |
(C++) - 백준(BOJ) 20053 : 최소, 최대 2 (0) | 2022.05.19 |