반응형
해당 문제는 2022년 카카오 코딩 테스트에 나온 문제다.
내가 접근한 방식은 먼저 각 index를 저장하는 리스트와 딕셔너리를 생성하고, survey를 입력으로 받아서 분류하는 형태로 진행하였다.
def solution(survey, choices):
types = ['R', 'T', 'C', 'F', 'J', 'M', 'A', 'N']
answers = [0] * len(types)
results = {t:i for i, t in enumerate(types)}
for s, value in zip(survey, choices):
a, b = s
if value >= 4:
answers[results[b]] += value - 4
else:
answers[results[a]] += 4 - value
outs = ''
for idx in range(0, len(answers), 2):
if answers[idx] >= answers[idx+1]:
outs += types[idx]
else:
outs += types[idx+1]
return outs
예를 들어, 입력이 "RT" 라고 하면, 4점을 기준으로 4점보다 큰 경우 T에 점수를 부여하고, 4점보다 작은 경우 R에 점수를 부여하는 형태다. 만약에 두 유형의 값이 일치한다면 알파벳 순으로 앞에 오는 문자를 출력한다.
처음 접근할 때 시간 초과가 뜰 것 같았으나, 문제 없이 잘 풀어졌다.
'Python > Algorithm' 카테고리의 다른 글
[프로그래머스] 크레인 인형뽑기 게임 - Python (0) | 2023.08.24 |
---|---|
[프로그래머스] 키패드 누르기 - Python (0) | 2023.08.24 |
[프로그래머스] 공원 산책 - Python (0) | 2023.08.24 |
[프로그래머스] 달리기 경주 - Python (0) | 2023.08.24 |
[Algorithm] sort()와 sorted()의 차이점 (2) | 2022.08.18 |