항해27일차
항해27일차 백준
11557번
백준 11557번 문제를 해결하는 법
이 코드는 각 테스트 케이스에 대해 학교의 이름과 술 소비량을 입력받아, 가장 많은 소비량을 가진 학교의 이름을 출력합니다. 아래는 코드에 대한 설명입니다.
### 코드 설명
```python
t1 = int(input()) # 테스트 케이스 수 입력
for i in range(t1):
t2 = int(input()) # 각 테스트 케이스의 학교 수 입력
name = [] # 학교 이름을 저장할 리스트
num = [] # 술 소비량을 저장할 리스트
for x in range(t2):
a, b = input().split() # 학교 이름과 소비량 입력
name.append(a) # 이름 리스트에 추가
num.append(int(b)) # 소비량 리스트에 추가
print(name[num.index(max(num))]) # 최대 소비량의 인덱스를 찾아 해당 학교 이름 출력
```
### 코드 작동 방식
1. **테스트 케이스 수 입력**: `t1`에 테스트 케이스의 수를 입력받습니다.
2. **각 테스트 케이스 반복**: `for` 루프를 통해 각 테스트 케이스를 처리합니다.
3. **학교 수 입력**: 각 테스트 케이스에서 학교의 수를 `t2`에 입력받습니다.
4. **이름과 소비량 저장**: `name` 리스트에 학교 이름을, `num` 리스트에 해당 학교의 술 소비량을 저장합니다.
5. **최대 소비량 찾기**: `max(num)`을 사용하여 최대 소비량을 찾고, `num.index()`를 통해 그 인덱스를 찾아 `name` 리스트에서 해당 인덱스의 학교 이름을 출력합니다.
### 장점
- 코드가 간결하고 이해하기 쉽습니다.
- 리스트를 사용하여 데이터를 저장하고, `max()`와 `index()`를 활용하여 최대값을 찾는 방식이 직관적입니다.
### 주의사항
- 이 코드는 입력이 주어지는 환경에서 실행되어야 하며, 입력 형식이 문제의 요구사항에 맞아야 합니다.
- `max()`와 `index()`를 사용하는 방식은 리스트의 크기가 크지 않을 때는 효율적이지만, 리스트가 매우 클 경우 성능이 저하될 수 있습니다.
이 코드는 문제를 해결하는 데 적합하며, 주어진 입력에 대해 올바른 결과를 출력할 것입니다.