본문 바로가기
Programming Test/문제풀이

[문제 풀이 7] 코드 트리 - 우유 생산량 경쟁

by muns91 2024. 4. 12.
우유 생산량 경쟁

 

  • 문제 유형 : 정렬, Exhaustive Search
  • 사용언어 : Python
  • 난이도 : 실버 3
  • 출처 : 코드 트리

 

 

https://www.codetree.ai/training-field/search/problems/milk-production-competition?&utm_source=clipboard&utm_medium=text

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

n = int(input())
changes = []
for _ in range(n):
        date, name, change = input().split()
        date = int(date)
        change = int(change)
        changes.append((date, name, change))

def count_sign_changes(N, changes):
    # 초기 생산량 설정: 모든 소는 7갤런으로 시작
    production = {"Bessie": 7, "Elsie": 7, "Mildred": 7}
    
    # 날짜 순으로 정렬된 변경 사항 목록
    sorted_changes = sorted(changes, key=lambda x: x[0])
    
    # 현재 전광판에 표시되는 소의 이름 초기화
    current_display = {"Bessie", "Elsie", "Mildred"}
    sign_change_count = 0

    for date, name, delta in sorted_changes:
        # 생산량 변경 적용
        production[name] += delta

        # 새로운 최고 생산량 찾기
        max_production = max(production.values())
        
        # 새로운 최고 생산량을 가진 소들 찾기
        new_display = {cow for cow, amount in production.items() if amount == max_production}
        
        # 전광판에 표시되는 이름이 변경되었는지 확인
        if new_display != current_display:
            current_display = new_display
            sign_change_count += 1

    return sign_change_count

print(count_sign_changes(n, changes))