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 행렬을 사용해 쉽게 풀었다.
'프로그래머스 > Lv. 1' 카테고리의 다른 글
9. 이웃한 칸 ★ (0) | 2024.07.11 |
---|---|
8. 큰 수 만들기 ★★ (그리디, 스택) (0) | 2024.07.11 |
6. PCCP 기출 1. 붕대 감기 (0) | 2024.07.11 |
5. merge sort의 구현 (바보같은 실수. ) (0) | 2024.07.11 |
4. 문자열 정수의 합 (0) | 2024.07.11 |