프로그래머스/Lv. 1
7. 가장 많이 받은 선물
Seohyeong Lee
2024. 7. 11. 20:54
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 행렬을 사용해 쉽게 풀었다.