Computer/Algorithm

Daily Algorithm - 3등 찾기

kentakang 2018. 3. 28. 19:57
반응형

문제

 민준이는 뒤늦게 정보 과목의 중요성을 깨닫고 학습실에서 공부를 하고 있다.

기본 공부가 너무 안 되어 있어 아주 쉬운 문제부터 어려움을 겪은 민준이는 친구에게 물어보려고 한다.

가장 잘 하는 친구에게 물어보기는 질문의 내용이 너무 부끄러워 n명의 친구들 중 정보 성적이 3번째로 높은 친구에게 묻고자 한다.

친구들의 성적은 모두 다르다.

n명의 친구들의 이름과 정보 성적이 주어졌을 때 성적이 세 번째로 높은 학생의 이름을 출력하시오.

입력

첫째 줄에 n이 입력된다. ( 3 <= n <= 50 )

둘째 줄 부터 n+1행까지 친구의 이름과 점수가 공백으로 분리되어 입력된다. 이름은 영문

출력

세 번째로 높은 학생의 이름을 출력한다.

예제 입력

5
minsu 78
gunho 64
sumin 84
jiwon 96
woosung 55

예제 출력

minsu

풀이

#include <stdio.h>
#include <string.h>

struct Person {
int score;
char name[10];
};

int main()
{
int n;
char name[10];
scanf("%d", &n);
struct Person p[50];

for (int i = 0; i < n; i++)
{
scanf("%s %d", name, &p[i].score);
strcpy(p[i].name, name);
}

for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - 1; j++)
{
if (p[j].score < p[j + 1].score)
{
struct Person temp = p[j + 1];
p[j + 1] = p[j];
p[j] = temp;
}
}
}

printf("%s", p[2].name);
}



문제 출처 : http://codeup.kr/JudgeOnline/problem.php?id=1420



반응형