https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=python3
내 풀이
#1번 라이언(R),튜브(T)
#2번 콘(C),프로도(F)
#3번 제이지(J),무지(M)
#4번 어피치(A),네오(N)
from collections import defaultdict
def solution(survey, choices):
answer=''
candi = defaultdict(int)
for s,c in zip(survey,choices):
if c<4:
candi[s[0]] +=(4-c)
elif c>4:
candi[s[1]] +=c-4
print(candi)
answer +='R' if candi['R'] >= candi['T'] else 'T'
answer +='C' if candi['C'] >= candi['F'] else 'F'
answer +='J' if candi['J'] >= candi['M'] else 'M'
answer +='A' if candi['A'] >= candi['N'] else 'N'
return answer
defaultdict를 이용한 풀이다.
아니면 set에다 기본 값 주고 시작해도 될듯.
다른사람의 풀이
from collections import defaultdict
def solution(survey, choices):
indicator = [('R', 'T'), ('C', 'F'), ('J', 'M'), ('A', 'N')]
answer = ''
personality = defaultdict(int)
for s, c in zip(survey, choices):
if c < 4:
personality[s[0]] += (4 - c)
elif c > 4:
personality[s[1]] += (c - 4)
for i in indicator:
if personality[i[0]] >= personality[i[1]]:
answer += i[0]
else:
answer += i[1]
return answer
사실 이 문제 코테를 처음 준비하기 시작했을 때 무턱대고 지원했던 카카오 인턴 1차 문제에서 어렵게 풀었었던 기억이있다.
그때 이 문제푸는데 2시간 걸렸었는데 참 시간이 많이 지났음을 느낀다..
'취준 > 프로그래머스' 카테고리의 다른 글
캐시 - 파이썬 (0) | 2022.09.08 |
---|---|
두 큐 합 같게 만들기 - 파이썬 (0) | 2022.08.31 |
배달 - 파이썬 (0) | 2022.07.27 |
괄호 회전하기 - 파이썬 (0) | 2022.07.25 |
게임 맵 최단거리 - 파이썬 (0) | 2022.07.05 |