




코딩테스트 연습 - 가장 많이 받은 선물 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 코드
from itertools import combinations
def solution(friends, gifts):
answer = 0
# 선물 교환 정보
gift_dt = {}
# 선물 지수
gift_score = {}
# 선물 받는 갯수
gift_re = {}
for i in friends:
gift_dt[i]=[]
gift_score[i]=0
gift_re[i]=0
#print(gift_re)
# 선물 교환 리스트 돌며
# 선물 교환정보, 선물 지수 딕셔너리 만들어준다
for i in gifts:
i=i.split(' ')
gift_dt[i[0]].append(i[1])
gift_score[i[0]]+=1
gift_score[i[1]]-=1
#print(gift_dt)
#print(gift_score)
# 선물을 교환하는 경우의 수를 combinations으로 만들어 주며
# 선물 받는 갯수 딕셔너리 만듬
for i in combinations(friends,2):
if gift_dt[i[0]].count(i[1])>gift_dt[i[1]].count(i[0]):
gift_re[i[0]]+=1
elif gift_dt[i[0]].count(i[1])<gift_dt[i[1]].count(i[0]):
gift_re[i[1]]+=1
else:
if gift_score[i[0]]>gift_score[i[1]]:
gift_re[i[0]]+=1
elif gift_score[i[0]]<gift_score[i[1]]:
gift_re[i[1]]+=1
# 최종 적으로 선물을 가장 많이 받은 개수를 리턴하기위한 answre 치환
answer = max(gift_re.values())
return answer'코딩테스트 파이썬 > 파이썬 프로그래머스 1단계' 카테고리의 다른 글
| Softeer 연습문제(1단계) - 근무시간 (0) | 2024.06.23 |
|---|---|
| [PCCP 기출문제] 1번 / 붕대 감기 (0) | 2024.01.06 |
| 주사위 게임 3 (1) | 2023.10.28 |
| 정수를 나선형으로 배치하기 (0) | 2023.10.26 |
| 공원 산책 (0) | 2023.10.06 |