1. 문제
2. 풀이
먼저 N개의 바구니를 만들어야하므로 동적메모리 할당을 이용한다
동적메모리 할당을 이용할 때에는 stdlib.h 라이브러리를 포함해야한다
이후에는 malloc을 사용해 동적메모리 할당을 진행한다.
공의 번호를 매길 때에는 공의 번호가 1부터 시작한다는 것에 유의하여 매겨야 한다
따라서 array[k] = k+1, k가 0부터 시작하므로 k+1로 바꿔주어야한다
공을 교환할 때는 tmp(빈 통)을 활용해 교환한다
이 때 우리가 입력하는 통의 번호 1번 2번은 실제 배열보다 1많은 숫자기 때문에(배열은 0부터시작)
바꿀 때에도 j-1 또는 i-1로 입력해주어야한다
3. 코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int N, M, i, j, tmp;
scanf("%d %d", &N, &M);
int* array = (int*)malloc(sizeof(int) * N);
//공의 번호를 매김
for (int k = 0; k < N; k++) {
array[k] = k+1;
}
//공을 교환
for (int k = 0; k < M; k++) {
scanf("%d %d", &i, &j);
tmp = array[j-1];
array[j-1] = array[i-1];
array[i-1] = tmp;
}
for (int k = 0; k < N; k++) {
printf("%d ", array[k]);
}
return 0;
}
4. 참고
'개인공부 > 백준' 카테고리의 다른 글
[백준(BOJ)] 알파벳 찾기 | 10809번 문제 풀이 (브론즈2, C언어) (1) | 2024.07.07 |
---|---|
[백준(BOJ)] 단어의 개수 | 1152번 문제 풀이 (브론즈2, C언어) (1) | 2024.07.02 |
복습 [백준(BOJ)] 숫자의 합 | 11720번 문제 풀이 (브론즈4, C언어) (1) | 2024.07.01 |
복습 [백준(BOJ)] 그대로 출력하기 | 11718번 문제 풀이 (브론즈3, C언어) (0) | 2024.06.30 |
[백준(BOJ)] 학점계산 | 2754번 문제 풀이 (브론즈5, C언어) (1) | 2024.06.30 |