https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
문제에서 시키는 대로 차근차근 구현하면 되는 문제다.
input 이해
survey[i][0] : i+1번 질문 비동의 선택 시 성격유형
survey[i][1] : i+1번 질문 동의 선택 시 성격유형
choices[i] : 4로 나눈 몫이 1 이상 : 동의 -> survey[i]의 [1] 유형에 4로 나눈 나머지 점수 부여 ('모르겠음' 선택지는 0점인데 나머지도 0점이라 케이스를 쪼개지 않아도 괜찮음)
choices[i] : 4로 나눈 몫이 1 미만 : 비동의 -> survey[i]의 [0] 유형에 (4 - choices[i]) 점수 부여
지표 체크
각각의 성격유형을 key-value 형태로 저장하는 것이 검색에 수월하여 dictionary 형태를 사용하였다. 다른 사람의 풀이를 보니 많이들 비슷하게 접근했더라.
python 코드
def solution(survey, choices):
answer = ''
score = {'R': 0, 'T': 0, 'C' : 0, 'F': 0, 'J': 0, 'M': 0, 'A': 0, 'N': 0}
# 점수 부여
for i in range(len(choices)):
# 동의
if choices[i] // 4 >= 1:
score[survey[i][1]] += choices[i] % 4
# 비동의
else:
score[survey[i][0]] += (4 - choices[i])
# 지표별 유형 판단
if score['R'] >= score['T']:
answer += 'R'
else:
answer += 'T'
if score['C'] >= score['F']:
answer += 'C'
else:
answer += 'F'
if score['J'] >= score['M']:
answer += 'J'
else:
answer += 'M'
if score['A'] >= score['N']:
answer += 'A'
else:
answer += 'N'
return answer
'Algorithm > 프로그래머스' 카테고리의 다른 글
[2022 KAKAO BLIND RECRUITMENT] k진수에서 소수 개수 구하기 (0) | 2022.09.20 |
---|---|
[2022 KAKAO TECH INTERNSHIP] 두 큐 합 같게 만들기 (1) | 2022.09.20 |
[프로그래머스] Lv2 - 후보키 (python) (0) | 2022.07.24 |
[프로그래머스] Lv2 주식가격 - python (0) | 2022.07.22 |
[프로그래머스] Lv2 소수 찾기 - python (0) | 2022.07.22 |