def solution(friends, gifts):
    answer = 0
    frlen = len(friends)
    record = [[0 for i in range(frlen)] for j in range(frlen)]
    res = [0 for i in range(frlen)]
    for i in range(len(gifts)):
        curr = gifts[i]
        give, recieved = gifts[i].strip().split(' ')
        record[friends.index(give)][friends.index(recieved)] += 1
    for i in range(frlen):
        for j in range(frlen):
            if i == j:
                continue
            else:
                if (record[i][j] == 0 and record[j][i] == 0) or record[i][j] == record[j][i]:
                    # 준 갯수에서 받은 갯수 빼기 
                    presenti = sum(record[i]) - sum([record[k][i] for k in range(frlen)])
                    presentj = sum(record[j]) - sum([record[k][j] for k in range(frlen)])
                    if presenti == presentj:
                        continue
                    elif presenti > presentj:
                        res[i] += 1
                    else:
                        res[j] += 1
                else:
                    if record[i][j] > record[j][i]:
                        res[i] += 1
                    else:
                        res[j] += 1
    return max(res)/2

 

유형 : 구현

풀이 시간 : 10분 정도. 

 

비교적 쉽게 풀음

 

선물을 기록하는 record 이차원 행렬과

결과값을 기록하는 res 행렬을 사용해 쉽게 풀었다. 

복사했습니다!