안녕하세요! 오늘은 간단하면서도 재미있는 프로그래밍 문제를 함께 풀어보려고 합니다. 문제는 다음과 같습니다:

문제: 여러 학교의 한 해 동안 술 소비량 데이터가 주어졌을 때, 가장 많이 술을 마신 학교의 이름을 출력하라.

 

문제의 배경

입학 OT 때 누구보다도 열심히(?) 놀았던 당신은 자연스럽게 1학년 과대를 맡게 되었습니다. 조인트 엠티를 기획하던 중, 주변 학교 중에서 가장 술 소비가 많은 학교가 궁금해졌습니다. 각 학교의 술 소비량이 주어졌을 때, 가장 많이 술을 마신 학교를 찾는 프로그램을 만들어봅시다.

 

문제 설명

입력

  1. 첫 줄에 테스트 케이스 수 T가 주어집니다.
  2. 각 테스트 케이스의 첫 줄에는 학교의 수 N이 주어집니다.
  3. 이어서 N줄에 걸쳐 각 학교 이름 S와 해당 학교의 술 소비량 L이 주어집니다.
    • 예: Yonsei 20000

출력

  • 각 테스트 케이스마다 가장 술 소비량이 많은 학교 이름을 한 줄씩 출력합니다.

조건

  • 학교의 수 N은 1 이상 100 이하.
  • 소비량 L은 0 이상 10,000,000 이하.
  • 같은 테스트 케이스 내에서 소비량이 동일한 학교는 없습니다.

 

풀이 접근

  1. 입력 데이터를 처리하기
    첫 번째 줄에서 테스트 케이스 수 T를 입력받습니다.
    각 테스트 케이스는 학교의 수 N과 학교 이름 및 소비량 정보가 주어지므로 이를 반복문으로 처리합니다.
  2. 가장 많이 마신 학교 찾기
    각 학교의 이름과 술 소비량을 비교하며 최대 소비량과 그에 해당하는 학교 이름을 기록합니다.
  3. 결과 출력
    테스트 케이스마다 가장 많이 술을 마신 학교의 이름을 출력합니다.

코드 구현

# 테스트 케이스 수 입력
T = int(input("테스트 케이스 수를 입력하세요: "))

# 테스트 케이스 처리
for _ in range(T):
    # 학교의 수 입력
    N = int(input("학교의 수를 입력하세요: "))
    max_school = ""  # 술 소비량이 가장 많은 학교 이름 저장
    max_liquor = 0   # 최대 술 소비량 저장
    
    # N개의 학교 데이터 입력
    for _ in range(N):
        school, liquor = input("학교 이름과 술 소비량을 입력하세요: ").split()
        liquor = int(liquor)
        
        # 최대 소비량과 비교하여 업데이트
        if liquor > max_liquor:
            max_liquor = liquor
            max_school = school
    
    # 결과 출력
    print(max_school)

 

 

코드 설명

1. 테스트 케이스 수 입력

  • 첫 줄에 테스트 케이스 수 T를 입력받습니다.
  • T번 반복하면서 각각의 테스트 케이스를 처리합니다.

2. 학교 데이터 처리

  • 각 테스트 케이스에서 학교의 수 N과 이름-소비량 데이터를 입력받습니다.
  • 최대값 비교를 통해 가장 많이 술을 마신 학교와 그 소비량을 기록합니다.

3. 결과 출력

  • 각 테스트 케이스마다 최대 소비량을 가진 학교의 이름을 출력합니다.

 

예제 실행

입력 예제

2
3
Korea 10000
Yonsei 20000
Ewha 30000
2
SeoulTech 5000
KU 7000

 

출력 예제

Ewha
KU

 

실행 과정 설명

  1. 첫 번째 테스트 케이스:
    • Korea: 10000, Yonsei: 20000, Ewha: 30000 데이터를 비교하여 Ewha가 가장 많이 소비했으므로 출력.
  2. 두 번째 테스트 케이스:
    • SeoulTech: 5000, KU: 7000 데이터를 비교하여 KU가 가장 많이 소비했으므로 출력.

핵심 포인트

  • 입력 데이터 처리: 여러 테스트 케이스를 하나씩 처리하는 반복문 사용.
  • 최댓값 비교: 각 학교의 소비량을 비교하여 현재까지의 최댓값과 이름을 갱신.
  • 문제 해결 능력 향상: 데이터를 순차적으로 처리하면서 최대값을 구하는 방식은 다양한 문제에서 활용 가능!

마무리

이 문제는 간단한 반복문과 조건문을 활용하여 데이터를 처리하는 능력을 기르는 데 매우 유용합니다. 여러분도 직접 코드를 작성하고 실행해 보세요! 😊

궁금한 점이나 피드백이 있다면 댓글로 남겨주세요!

+ Recent posts