-
[프로그래머스] LV1. 성격 유형 검사하기알고리즘 2023. 3. 13. 15:59728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
접근
1. 문제를 읽어보니 dict 를 써야할거라는 확신이 듦
2. 8가지 중 2가지씩 짝을 지어갈것
3. choice값 중 4점을 기점으로 각 점수를 key에 맞는 value 값에 증가 시켜주기
4. 2가지 유형을 하나의 세트로 볼때 세트 별 점수가 같으면 사전순으로 넣어주기에 저런 중복되는 코드가 나옴
풀이
1차 코드 -> 성공은 하는데 중복코드가 너무 많음 ( 나중에 기회가 되면 줄여보겠음 )
def solution(survey, choices): ans = '' dic = {'T' : 0,'R' : 0,'F' : 0,'C' : 0,'M' : 0,'J' : 0,'A' : 0,'N' : 0} res = [] for i in range(len(survey)): if choices[i] < 4: dic[survey[i][0]] += (4 - choices[i]) if choices[i] > 4: dic[survey[i][1]] += (choices[i] - 4) if dic['R'] >= dic['T']: ans += 'R' else: ans += 'T' if dic['C'] >= dic['F']: ans += 'C' else: ans += 'F' if dic['J'] >= dic['M']: ans += 'J' else: ans += 'M' if dic['A'] >= dic['N']: ans += 'A' else: ans += 'N' return ans
'알고리즘' 카테고리의 다른 글
[프로그래머스] LV2. 주차요금 계산 (0) 2023.03.20 [프로그래머스] LV1. 모의고사 (0) 2023.03.13 [프로그래머스] LV1. 둘만의 암호 (0) 2023.03.13 [프로그래머스] LV1. 개인정보 수집 유효기간 (0) 2023.03.11 [프로그래머스] LV1. 기사단원의 무기 (0) 2023.03.11