반응형
https://www.acmicpc.net/problem/10813
- 문제
해설
1번 ~ n번까지의 바구니가 존재하며 각 바구니에는 해당하는 숫자가 들어가있다.
m줄에 걸쳐 a, b를 입력 받은 후 a번 바구니와 b번 바구니에 들어있는 숫자를 바꾼 후 n개의 바구니를 출력하는 문제다
n번까지의 바구니에 각 바구니에 해당하는 숫자로 초기화를 해준 후
swap 메소드를 사용하여 바구니 안의 번호를 바꾼 후 출력을 해주었다
코드에서 정의한 swap 함수를 설명하자면
변수에 새로운 값을 대입하면 기존의 값은 사라지므로,
기존 값을 저장할 temp에 기존 값을 저장한 후,
a 인덱스에다가 b 인덱스 값을 대입한 후
b 인덱스에 a 인덱스의 기존 값인 temp를 대입한다.
코드
c
#include <stdio.h>
int n, m;
int arr[101] = { 0, };
int a, b;
void swap(int idx1, int idx2) {
int temp = arr[idx1];
arr[idx1] = arr[idx2];
arr[idx2] = temp;
}
int main() {
scanf("%d %d", &n, &m);
for(int i = 1; i <= n; i++) {
arr[i] = i;
}
for(int i = 0; i < m; i++) {
scanf("%d %d", &a, &b);
swap(a, b);
}
for(int i = 1; i <= n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
c++
#include <iostream>
using namespace std;
int n, m;
int arr[101] = { 0, };
int a, b;
void swap(int idx1, int idx2) {
int temp = arr[idx1];
arr[idx1] = arr[idx2];
arr[idx2] = temp;
}
int main() {
cin >> n >> m;
for(int i = 1; i <= n; i++) {
arr[i] = i;
}
for(int i = 0; i < m; i++) {
cin >> a >> b;
swap(a, b);
}
for(int i = 1; i <= n; i++) {
cout << arr[i] << ' ';
}
return 0;
}
반응형
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[BOJ/백준] 18258번 큐 2 - c++ 풀이 (0) | 2023.04.10 |
---|---|
[BOJ/백준] 5597번 과제 안 내신 분..? - [c/c++] 풀이 (0) | 2023.04.01 |
[BOJ/백준] 10810번 공 넣기 - [c/c++] 풀이 (0) | 2023.03.28 |
[BOJ/백준] 10807번 개수 세기 - [c/c++] 풀이 (0) | 2023.03.03 |
[BOJ/백준] 25314번 코딩은 체육과목 입니다 - [c/c++]풀이 (0) | 2023.03.02 |
댓글