코딩테스트
[C언어] 백준 3230 금메달, 은메달, 동메달은 누가?
김채민
2021. 9. 20. 00:02
백준 3230 금메달, 은메달, 동메달은 누가?
https://www.acmicpc.net/problem/3230
3230번: 금메달, 은메달, 동메달은 누가?
첫 번째 줄에는 금메달을 딴 선수의 번호를, 두 번째 줄에는 은메달을 딴 선수의 번호를, 세 번째 줄에는 동메달을 딴 선수의 번호를 출력한다.
www.acmicpc.net
#include <stdio.h>
#include <stdlib.h>
void insert(int arr[], int index, int value, int len) {
for (int i = len - 1; i >= index; i--)
arr[i + 1] = arr[i];
arr[index] = value;
}
int main(void) {
int N, M;
scanf("%d %d", &N, &M);
int* iArr, *iArr2;
iArr = (int*)malloc(sizeof(int) * (N+1));
iArr2 = (int*)malloc(sizeof(int) * (M+1));
for (int i = 0; i < N; i++)
iArr[i] = 0;
for (int i = 0; i < M; i++)
iArr2[i] = 0;
int iRank;
// 첫 번째 경주
for(int i=1; i<N+1; i++) {
scanf("%d", &iRank);
if (iArr[iRank - 1] == 0) {
iArr[iRank - 1] = i;
}
else {
insert(iArr, iRank-1, i, N);
}
}
for (int i = 0; i < M; i++) {
scanf("%d", &iRank);
insert(iArr2, iRank - 1, iArr[M-1-i], M);
}
for (int i = 0; i < 3; i++)
printf("%d\n", iArr2[i]);
free(iArr);
free(iArr2);
return 0;
}