https://school.programmers.co.kr/learn/courses/30/lessons/258712
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
선물 예측 프로세스는 다음과 같다.
def solution(friends, gifts):
numOfFriends = len(friends)
giftMap = [[0 for j in range(numOfFriends)] for i in range(numOfFriends)]
# gifts 파싱해서 giftMap에 저장
# giftMap[i][j] = i가 j에게 준 선물수
for s in gifts:
sender, receiver = s.split(" ")
si, ri = friends.index(sender), friends.index(receiver)
giftMap[si][ri] = giftMap[si][ri] + 1
# 선물지수 구하기
선물지수 = [0 for i in range(numOfFriends)]
for i in range(numOfFriends):
받은선물수 = 0
for j in range(numOfFriends):
받은선물수 = 받은선물수 + giftMap[j][i]
준선물수 = 0
for j in range(numOfFriends):
준선물수 = 준선물수 + giftMap[i][j]
선물지수[i] = 준선물수 - 받은선물수
# 받을 선물수 구하기
받을선물 = [0 for i in range(numOfFriends)]
for i in range(numOfFriends):
for j in range(i + 1, numOfFriends):
if giftMap[i][j] > giftMap[j][i]:
받을선물[i] = 받을선물[i] + 1
elif giftMap[i][j] < giftMap[j][i]:
받을선물[j] = 받을선물[j] + 1
else :
if 선물지수[i] > 선물지수[j]:
받을선물[i] = 받을선물[i] + 1
elif 선물지수[i] < 선물지수[j]:
받을선물[j] = 받을선물[j] + 1
# 받은 선물수 중 최대값 반환
return max(받을선물)
[백준] 9012. 괄호 | 스택 | 파이썬, 정답 소스코드 (1) | 2024.10.09 |
---|---|
[프로그래머스] 258711. 도넛과 막대 그래프| 그래프, BFS | 파이썬, 소스코드, 정답 (1) | 2024.04.03 |
[LeetCode] Combination Sum | DFS | 파이썬 알고리즘 인터뷰, 정답, 소스코드 (2) | 2023.06.22 |
[LeetCode] Longest Substring Without Repeating Characters | 투포인터 | 파이썬 알고리즘 인터뷰, 정답, 소스코드 (1) | 2023.06.19 |
[LeetCode] Remove Duplicate Letters | stack | 파이썬 알고리즘 인터뷰, 정답, 소스코드 (0) | 2023.06.15 |