n=int(input())
stu=input().split()
dic={}
for i in stu:
    dic[i]=0
for _ in stu:
    pop=list(map(str,input().split()))
    for i in stu:
        for j in pop:
            if(i==j):
                dic[i]+=1

dic = sorted(dic.items(), key=lambda item:(-item[1],item[0]))

for i in range(n):
    print(dic[i][0], dic[i][1])

<코드설명>

학생 이름의 개수인 n과 학생 이름인 stu를 입력받아주었다.

입력받은 stu를 모두 dic에 저장해주고, 0의 값을 넣어주었다.

stu만큼 한 명의 학생이 좋아하는학생 이름을 pop 변수를 통해 입력받아주었다.

stu와 pop을 이중 for문을 이용하여 둘이 일치할 때마다 dic[i]을 1씩 증가시켜주었다.

정렬하여 출력을 해야하기 때문에 lambda 정렬을 해주었다.

이렇게 구한 dic의 원소를 출력해주었다.

 

 

<실행결과>

 

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 1463 1로 만들기  (0) 2022.10.02
[BOJ] 2910 빈도 정렬  (0) 2022.10.02
[BOJ] 1912 연속합  (0) 2022.09.25
[BOJ] 3986 좋은 단어  (0) 2022.09.25
[BOJ] 22233 가희와 키워드  (0) 2022.09.24

+ Recent posts