출처 : 반크_세계유산 창덕궁
문제]
2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N명의 학생들이 응시했다.
이들 중 점수가 가장 높은 k명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라.
커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다.
입력
첫째 줄에는 응시자의 수 N과 상을 받는 사람의 수 k가 공백을 사이에 두고 주어진다.
둘째 줄에는 각 학생의 점수 x가 공백을 사이에 두고 주어진다.
출력
상을 받는 커트라인을 출력하라.
제한
1 ≤ N ≤ 1000
1 ≤ k ≤ N
0 ≤ x ≤ 10000
예제 입력 1
5 2
100 76 85 93 98
예제 출력 1
98
시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다.
출처 : 백준_25305
참고풀이] Dev-C++ 5.11
#include <stdio.h>
#include <stdlib.h> //malloc(), free()
int main()
{
int N,k;//응시자수와 상을 받는 사람의 수 변수
int i,j;//인덱스 또는 반복변수
int tmp;//임시변수
//자료를 입력받는다.
while(1)
{
scanf("%d%d",&N,&k);
if((N>=1 && N<=1000) && (k>=1 && k<=N)) break;
printf("응시자가 1<=N<=1000 사이의 가 아니거나, \n");
printf("상받는 사람의 수가 1<=k<=N 사이의 수가 아닙니다.\n");
printf("작업을 중지합니다.");
return 0;
}
//응시자 개개인의 점수를 넣을 동적배열변수를 선언한다.
int *A=(int *)malloc(sizeof(int)*N);
for(i=0;i<N;i++)
{
scanf("%d",&A[i]);
if(A[i]>=0 && A[i]<=10000);
else
{
printf("점수가 0<=A[i]<=10000 사이의 수가 아닙니다.\n");
printf("작업을 중지합니다.");
return 0;
}
}
//입력받은 점수들을 내림차순 정렬한다.
for(i=0;i<N-1;i++)
{
for(j=0+i;j<N;j++)
if(A[i]<A[j])
{
tmp=A[i];
A[i]=A[j];
A[j]=tmp;
}
}
//결과출력
printf("\n%d",A[k-1]);
//동적배열변수를 해제한다.
free(A);
return 0;
}
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 봄
'프로그램 > C언어 1000제' 카테고리의 다른 글
C언어 150제] 2014년 한국정보올림피아드 지역본선 초등부 2번 자리배정 (0) | 2024.07.02 |
---|---|
C언어 149제] 2015년 한국정보올림피아드 지역본선 초등부 2번 세로읽기 (0) | 2024.06.20 |
C언어 147제] 2005년 한국정보올림피아드 지역본선 초등부 1번 대표값2 (0) | 2024.06.17 |
C언어 146제] 2006년 한국정보올림피아드 지역본선 초등부 1번 홀수 (0) | 2024.06.17 |
C언어 145제] 2007년 한국정보올림피아드 지역본선 초등부 1번 최댓값 (0) | 2024.06.13 |
댓글