📖 문제
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
💻 code
def solution(survey, choices):
answer=''
dict={'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0}
for i, j in zip(survey, choices):
if j==1:
dict[i[0]]+=3
elif j==2:
dict[i[0]]+=2
elif j==3:
dict[i[0]]+=1
elif j==5:
dict[i[1]]+=1
elif j==6:
dict[i[1]]+=2
elif j==7:
dict[i[1]]+=3
if dict['R']>=dict['T']:
answer+='R'
else:
answer+='T'
if dict['C']>=dict['F']:
answer+='C'
else:
answer+='F'
if dict['J']>=dict['M']:
answer+='J'
else:
answer+='M'
if dict['A']>=dict['N']:
answer+='A'
else:
answer+='N'
return answer
🎈 해설
-딕셔너리로 성격 유형 8가지의 value 를 0으로 초기화한다.
-zip() 함수로 survey 와 choices 를 돌면서 동의 답변일 경우 첫 번째 값에 점수를, 비동의일 경우 두 번째 값에 점수를 더해준다.
-성격 유형별 비교를 통해 수치순으로, 값이 같다면 사전순으로 높은 값을 출력한다.
마지막에 사전순으로 높은 값으로 출력해야 한다는 조건을 까먹고 ' > ' 연산자만 사용했다가 오류가 났다.
문제를 잘 읽도록 하자.
'알고리즘' 카테고리의 다른 글
GCD & LCM (0) | 2024.05.24 |
---|---|
순열과 조합 (0) | 2024.05.24 |
[그리디 알고리즘] 등수 매기기 (0) | 2022.11.12 |
[그리디 알고리즘] YONSEI TOTO (0) | 2022.11.09 |
[그리디 알고리즘] Project Teams (0) | 2022.10.10 |