Problem Solving/프로그래머스

프로그래머스 가장 많이 받은 선물

minOE 2025. 7. 5. 21:23
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/258712

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

def solution(friends, gifts):
    n = len(friends)
    d = dict()
    d = {friends[i]: i for i in range(n)}
    ans = {i : 0 for i in range(n)}
    array = [[0 for _ in range(n)] for _ in range(n)]
    for gift in gifts:
        arr = gift.split()
        array[d[arr[0]]][d[arr[1]]] +=1
    for i in range(n):
        for j in range(i):
            if i == j :
                continue
            if array[i][j] > array[j][i]:
                ans[i] +=1
            if array[i][j] < array[j][i]:
                ans[j] +=1
            if array[i][j] == array[j][i]:
                temp1=0
                temp2=0
                for k in range(n):
                    temp1 += array[i][k] - array[k][i]
                    temp2 += array[j][k] - array[k][j]
                if temp1 > temp2 :
                    ans[i] +=1
                if temp1 < temp2:
                    ans[j] +=1
               
    return max(ans.values())
728x90