촉촉한초코칩
[백준] 25305(커트라인) c언어 본문
문제
2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N명의 학생들이 응시했다.
이들 중 점수가 가장 높은 k명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라.
커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다.
입력
첫째 줄에는 응시자의 수 N과 상을 받는 사람의 수 k가 공백을 사이에 두고 주어진다.
둘째 줄에는 각 학생의 점수 x가 공백을 사이에 두고 주어진다.
출력
상을 받는 커트라인을 출력하라.
배열을 내림차순으로 정렬하고 k번째 요소 값 출력하기
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, k;
scanf("%d %d", &n, &k);
int *score;
score = calloc(sizeof(int), n);
for(int i=0; i<n; i++) {
scanf("%d", &score[i]);
}
for(int i=0; i<n; i++) {
for(int j=i+1; j<n; j++) {
if(score[i] < score[j]) {
int tmp = score[j];
score[j] = score[i];
score[i] = tmp;
}
}
}
for(int i=0; i<n; i++) {
printf("%d\n", score[i]);
}
printf("%d\n", score[k-1]);
}
이건 예전에 제출했다가 틀린 코드인데 왜 틀렸지...?
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, k, temp = 0;
int *x;
while(1) {
scanf("%d %d", &n, &k);
if(k<n)
break;
}
x = calloc(n, sizeof(int));
for(int i=0; i<n; i++) {
scanf("%d", &x[i]);
}
for(int i=0; i<n; i++) {
for(int j=0; j<n-1; j++) {
if(x[j] < x[j+1]) {
temp = x[j];
x[j] = x[j+1];
x[j+1] = temp;
}
}
}
printf("%d\n", x[k-1]);
free(x);
}
'Algorithm' 카테고리의 다른 글
08. 문자열 (0) | 2023.05.25 |
---|---|
[미해결] 2023 인하대학교 프로그래밍 경진대회(IUPC) (A-모비스) (0) | 2023.05.21 |
[백준] 2501(약수 구하기) c언어 (0) | 2023.05.21 |
07. 집합 (0) | 2023.05.15 |
[백준] 9086(문자열) c언어 (0) | 2023.05.06 |