ALGORITHM/PYTHON

백준 BAEKJOON 25325번 학생 인기도 측정 [PYTHON/파이썬]

칼코
반응형

백준 BAEKJOON 25325번 학생 인기도 측정 [PYTHON/파이썬]


<문제 출처>

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

 

25325번: 학생 인기도 측정

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

www.acmicpc.net

<풀이>

딕셔너리 사용법과 딕셔너리 정렬 방법에 대해서는 아래의 블로그를 참고하였다.

 

 

[Python] 파이썬 딕셔너리(dictionary) 정렬(reverse) 하는 방법 : sorted() 키값 기준 정렬, lambda x:x[1] 의미

파이썬에서 딕셔너리 자료형을 키 값 기준으로 정렬하는 방법과 리스트를 정렬하는 방법에 대해 알아봅니다. sorted()함수를 사용하여 정렬할 수 있습니다. ■key값을 기준으로 정렬하기 (기본 오

ddolcat.tistory.com

학생들 목록을 리스트로 받은 뒤 딕셔너리(result)로 변환해주었다.

그 다음 n 개 줄에 각 학생들의 좋아하는 학생들을 딕셔너리에 +1 해주었다.

 

그리고 key=lambda 를 사용하여 value 값으로 내림차순 정렬을 해주었다.

 

<코드>

n = int(input())
student = input().split()
result = {string : 0 for string in student}	# 딕셔너리 변환

for _ in range(n) :
    a = list(input().split())
    for i in a :
        result[i] += 1

sort_dict = sorted(result.items(), key=lambda x: x[1], reverse=True)

for key, value in sort_dict :	# 출력
    print(key, value)
반응형