출처 : 반크_반크 20년 백서
문제]
2018년에 대한민국 평창에서 동계올림픽이 개최된다. 그 중에서도 스키는 동계올림픽의 꽃이지만 유독 우리나라에선 인기가 좀 없는 것 같다. 그래서 이번 평창올림픽에선 새로운 스키 경기 규칙이 적용 되었다. 새로 적용된 규칙은 다음과 같다.
스키 경기는 두 번의 경주로 이루어져 있다. 총 N명의 선수가 첫 번째 경주에 참가하고 각각 번호를 부여받는다. 1번 선수부터 N번 선수까지 순서대로 한 명씩 산을 타고 내려간다. 산을 다 내려오면 내려온 선수의 현재 순위가 정해질 것이다. 첫 번째 경주가 끝나고 난 뒤 최종적으로 정해진 순위에 따라서 1등부터 M등까지의 선수들에게만 두 번째 경주에 나갈 수 있는 자격이 주어진다.
두 번째 경주에서는 첫 번째 경주에서 늦게 들어온 순서대로(M등부터 시작해서 1등까지) 한 명씩 산을 타고 내려간다. 산을 다 내려오면 내려온 선수의 현재 순위가 정해질 것이다. 두 번째 경주가 끝나고 난 뒤 최종적으로 정해진 순위에 따라서 1등, 2등 그리고 3등에게 각각 금메달, 은메달, 동메달이 수여 될 것이다.
이때 메달을 얻은 선수들의 번호를 구하는 프로그램을 작성해야 한다.(경주에 참가한 모든 선수들은 한 명도 빠짐없이 경주를 완주한다. 두 명 이상의 선수가 동시에 들어오는 경우는 없다.)
입력
첫 번째 줄에는 정수 N과 M이 주어진다. (3 ≤ M ≤ N ≤ 100)
이 후 N개의 줄에는 첫 번째 경주에서 각각의 선수들이 내려왔을 때 정해진 현재 순위가 주어진다.
이 후 M개의 줄에는 두 번째 경주에서 각각의 선수들이 내려왔을 때 정해진 현재 순위가 주어진다.
출력
첫 번째 줄에는 금메달을 딴 선수의 번호를, 두 번째 줄에는 은메달을 딴 선수의 번호를, 세 번째 줄에는 동메달을 딴 선수의 번호를 출력한다.
예제 입력 1
3 3
1
2
3
1
1
1
예제 출력 1
1
2
3
예제 입력 2
4 3
1
1
2
2
1
2
1
예제 출력 2
2
3
4
예제 입력 3
5 4
1
2
1
4
3
1
1
3
2
예제 출력 3
5
3
2
출처 : 백준_3230번
참고풀이]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int S[101], R[101];
int main()
{
int N, M, x;
int i,j;
scanf("%d%d", &N, &M);
if ((M >= 3 && M <= N) && (N >= M && N <= 100))
{
for (i = 1;i <= N; i++) // i는 선수 번호
{
scanf("%d%*c", &x); //x는 등수
//입력받은 등수가 현재 입력받은 선수의 수보다 작다면
if (x < i)
{
//기존선수들을 뒤로 한칸씩 이동한다.
for (j = i;j >= x;j--)
S[j] = S[j - 1];
S[x] = i; //그 자리에 입력받은 선수의 번호를 넣는다.
}
else
S[x] = i;
}
for (i = 1;i <= M; i++)
{
scanf("%d%*c", &x); //x는 등수
//입력받은 등수가 현재 입력받은 선수의 수보다 작다면
if (x < i)
{
//기존선수들을 뒤로 한칸씩 이동한다.
for (j = i;j >= x;j--)
R[j] = R[j - 1];
//그 자리에 입력받은 선수의 번호를 넣는다.
R[x] = S[M - i + 1];
}
else
R[x] = S[M - i + 1];
}
for (i = 1; i <= 3;i++)//금은동만 출력
printf("%d\n", R[i]);
}
return 0;
}
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 봄
'프로그램 > C언어 1000제' 카테고리의 다른 글
C언어 230제] 소수 네 개의 합(Summation of Four Primes) (0) | 2025.02.19 |
---|---|
C언어 228제] NCP Lv3 수 정렬하기 2 (0) | 2025.02.17 |
C언어 227제] 팩토리얼 나누기(Factovisors) (0) | 2025.02.06 |
C언어 226제] 유크리드 문제(Euclid Problem) (0) | 2025.02.05 |
C언어 225제] NCP Lv3. 날짜계산 (0) | 2025.02.03 |
댓글