728x90
https://www.acmicpc.net/problem/25305
문제해석
1) 총 인원 수(N), 상을 받는 인원 수(k)를 입력받습니다.
2) 각 학생의 점수를 배열을 통해 입력받는다.
3) 점수가 높은 순으로 정렬하고, k번째 학생의 점수를 출력합니다.
여기서 k번째 점수를 출력하기 위해 i가 k-1에 도달하면 반복을 종료하도록 합니다. 이유는 외부 루프 i가 상을 받는 인원 수보다 1작을 때는 이미 내부 루프에서 k번째 순위까지 매겼기 때문입니다.
소스코드 & 문제풀이
#include<stdio.h>
int arr[1000];
int N, k, tem;
int main() {
scanf("%d %d", &N, &k); // 총 인원 수(N)과 상을 받는 인원 수(K)를 입력받습니다
// 배열을 이용해 총 인원 수만큼 배열에 저장합니다
for (int i = 0; i < N; i++) {
scanf("%d", &arr[i]);
}
// 총 인원 수만큼 반복문을 순회하며 배열의 순서를 점수가 높은 순으로 정렬시켜줍니다
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
if (arr[i] < arr[j]) {
tem = arr[i];
arr[i] = arr[j];
arr[j] = tem;
}
}
// 반복문의 i가 k-1에 도달하면 반복을 종료합니다
if (i == k - 1)
break;
}
printf("%d", arr[k - 1]);
return 0;
}
예제 입출력 결과
728x90
'백준(BaekJoon)' 카테고리의 다른 글
[BaekJoon/C] No.27433 : 팩토리얼 2 (0) | 2024.08.29 |
---|---|
[BaekJoon/C] No.11651 : 좌표 정렬하기 2 (0) | 2024.08.20 |
[BaekJoon/C] No.18870 : 좌표 압축 (0) | 2024.08.14 |
[BaekJoon/C] No.10814 : 나이순 정렬 (0) | 2024.08.14 |
[BaekJoon/C] No.2941 : 크로아티아 알파벳 (0) | 2024.08.06 |