관리 메뉴

솜씨좋은장씨

[BaekJoon] 25325번 : 학생 인기도 측정 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 25325번 : 학생 인기도 측정 (Python)

솜씨좋은장씨 2022. 9. 15. 11:09
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 학생 인기도 측정 입니다.

 

25325번: 학생 인기도 측정

학생 이름이 공백으로 구분된 문자열 A가 주어진다. 문자열 A에는 중복된 학생 이름이 존재하지 않는다. 학생 이름은 알파벳 소문자로 이루어져 있다. 각 학생이 좋아하는 학생의 학생 이름 목록

www.acmicpc.net

👨🏻‍💻 코드 ( Solution )

def make_popularity_dict(student_name_list):
    popularity_dict = {}
    for student_name in student_name_list:
        popularity_dict[student_name] = 0
        
    return popularity_dict


def measure_popularity(n_student_name_list, student_name_list):
    popularity_dict = make_popularity_dict(
        student_name_list=n_student_name_list
    )
    
    for student_name in student_name_list:
        popularity_dict[student_name] += 1
        
    return popularity_dict.items()


def sort_popularity_items(popularity_items):
    return sorted(popularity_items, key=lambda x: -x[1])
        
    
def print_answer(popularity_items):
    for item in popularity_items:
        print(f"{item[0]} {item[1]}")
    

if __name__ == "__main__":
    student_list = []
    
    n = int(input())
    n_student_name_list = input().split()
    
    for _ in range(n):
        student_names = input().split()
        
        student_list += student_names
        
    popularity_items = measure_popularity(
        n_student_name_list=n_student_name_list,
        student_name_list=student_list
    )
    
    sorted_items = sort_popularity_items(
        popularity_items=popularity_items
    )
    
    print_answer(
        popularity_items=sorted_items
    )
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments