학습 정리/👨‍💻 PS Study

[C] 백준 11557번 - Yangjojang of The Year

무딘붓 2022. 7. 6. 22:54

https://www.acmicpc.net/problem/11557

 

11557번: Yangjojang of The Year

입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지

www.acmicpc.net

 

(21.08.06)

11557번: Yangjojang of The Year

[문제]

입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다.

타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 궁금해졌다.

학교별로 한 해동안 술 소비량이 주어질 때, 가장 술 소비가 많은 학교 이름을 출력하여라.

[입력]

입력의 첫 줄에는 테스트 케이스의 숫자 T가 주어진다.

매 입력의 첫 줄에는 학교의 숫자 정수 N(1 ≤ N ≤ 100)이 주어진다.

이어서 N줄에 걸쳐 학교 이름 S(1 ≤ |S| ≤ 20, S는 공백없는 대소문자 알파벳 문자열)와 해당 학교가 지난 한 해동안 소비한 술의 양 L(0 <= L <= 10,000,000)이 공백으로 구분되어 정수로 주어진다.

같은 테스트 케이스 안에서 소비한 술의 양이 같은 학교는 없다고 가정한다.

2
3
Yonsei 10
Korea 10000000
Ewha 20
2
Yonsei 1
Korea 10000000

[출력]

각 테스트 케이스마다 한 줄에 걸쳐 술 소비가 가장 많은 학교의 이름을 출력한다.

Korea
Korea

 

[소스코드]

 

#include <stdio.h>
#include <string.h>
// [baekjoon] 11557번 - Yangjojang of The Year

int main() {

	int T, N, L[100];
	char S[100][21];					// 학교 이름을 저장할 2차원 배열!
	scanf("%d", &T);			

	for (int i = 0; i < T; i++) {
		scanf("%d", &N);
		int max_num = 0;				// 술 소비가 가장 많은 학교의 순서
		int max_sul = 0;				// 술 소비가 가장 많은 학교의 술 소비량
		
		for (int j = 0; j < N; j++) {
			scanf("%s%d", &S[j], &L[j]);
			if (L[j] > max_sul) {		// 술 소비량 비교
				max_sul = L[j];
				max_num = j;
			}
		}
		printf("%s\n", S[max_num]);
	}

}

 

문제를 푸는데 필요한건 문자열(string)에 대한 공부였다.

아직 공부한 적 없던 내용이라서 간단하게 공부해보고 문제를 풀었다.

학교 이름이 여러개 입력되기 때문에, 2차원 배열을 이용해서 이름을 저장했다.

학교 이름을 입력 받는 걸 제외하면, 평범한 최대값 찾기 문제라서 푸는데 어려움은 없었다.