✏️ 문제
문제 파악
R과 T, C와 F 는 세트(?)이기 때문에 이 세트를 살리기 위해 딕셔너리를 각각 나눠주면서 튜플을 사용했다.
그리고 유형이 반대로 들어올 수도 있기 때문에 반대에 해당하는 유형도 배열에 넣어줘서 딕셔너리의 값을 더할 때
인덱스 [0]과 인덱스 [1]로 구분해서 더해주었다.
코드
def solution(survey, choices):
answer = ''
ary = ['R', 'T', 'C', 'F', 'J', 'M', 'A', 'N']
aryC = ['RT', 'TR', 'CF', 'FC', 'JM', 'MJ', 'AN', 'NA']
category = {'R' : 0, 'T' : 0}, {'C' : 0, 'F' : 0}, {'J' : 0, 'M' : 0}, {'A' : 0, 'N' : 0}
for i in range(len(survey)):
s = survey[i]
c = choices[i]
if 0 < c < 4:
category[int(aryC.index(s) // 2)][s[0]] += (4-c)
else:
category[int(aryC.index(s) // 2)][s[1]] += (c-4)
jump = 0
for i, c in enumerate(category):
jump += (i * 2)
if category[i][ary[0+jump]] < category[i][ary[1+jump]]:
answer += ary[1+jump]
elif category[i][ary[0+jump]] > category[i][ary[1+jump]]:
answer += ary[0+jump]
else:
answer += min(category[i])
jump = 0
return answer
- 다른 사람의 풀이
def solution(survey, choices):
my_dict = {"RT" : 0, "CF" : 0, "JM" : 0, "AN" : 0}
for A,B in zip(survey,choices):
if A not in my_dict.keys():
A = A[::-1]
my_dict[A] -= B-4
else:
my_dict[A] += B-4
result = ""
for name in my_dict.keys():
if my_dict[name] > 0:
result += name[1]
elif my_dict[name] < 0:
result += name[0]
else:
result += sorted(name)[0]
return result
역순이 들어오면 바로 뒤집어서 풀으셨다. 바로 뒤집으면 더 쉽게 풀 수 있는데 생각을 못했네 ㅠ
- 다른 사람의 풀이
def solution(survey, choices):
scores = {"A":0, "N":0, "C":0, "F":0, "M":0, "J":0, "R":0, "T":0}
for idx, choice in enumerate(choices):
if choice - 4 > 0:
scores[survey[idx][1]] += choice - 4
elif choice - 4 < 0:
scores[survey[idx][0]] += 4 - choice
type = ""
if scores["R"] >= scores["T"]:
type += "R"
else:
type += "T"
if scores["C"] >= scores["F"]:
type += "C"
else:
type += "F"
if scores["J"] >= scores["M"]:
type += "J"
else:
type += "M"
if scores["A"] >= scores["N"]:
type += "A"
else:
type += "N"
return type
딕셔너리에 바로 "R", "T" 등 넣어서 비교하면 굳이 튜플 쓸 필요없이 편하게 할 수 있었다...
'PS > 프로그래머스' 카테고리의 다른 글
[Python] 가장 많이 받은 선물 (0) | 2024.11.03 |
---|---|
[Python] 신고 결과 받기 (0) | 2024.11.02 |
[Python] 1번 / 동영상 재생기 (0) | 2024.11.02 |
[Python] 개인정보 수집 유효기간 (1) | 2024.11.02 |
[Python] 10번 / 공원 (0) | 2024.11.02 |