[Python/Javascript] 프로그래머스 2022 KAKAO TECH INTERNSHIP 성격 유형 검사하기
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Python Answer
def solution(survey, choices):
score = {'R':0, 'T':0, 'C':0, 'F':0, 'M':0, 'J':0, 'A':0, 'N':0}
ans_first = {1:3, 2:2, 3:1}
ans_second = {5:1, 6:2, 7:3}
answer = ''
for idx in range(len(survey)):
if choices[idx] in ans_first: #앞선 선지 스코어 올려줄 경우
score[survey[idx][0]] += ans_first[choices[idx]]
elif choices[idx] in ans_second:
score[survey[idx][1]] += ans_second[choices[idx]]
if score['R'] < score['T']:
answer += 'T'
else:
answer += 'R'
if score['F'] > score['C']:
answer += 'F'
else:
answer += 'C'
if score['M'] > score['J']:
answer += 'M'
else:
answer += 'J'
if score['N'] > score['A']:
answer += 'N'
else:
answer += 'A'
return answer
두 개의 유형을 하나로 묶어서 생각한다. 123에 응답한 경우 앞선 선지의 점수를 올려야 하고 567에 응답한 경우 뒷 선지의 점수를 올려야 하기 때문에 나눠서 생각했다.
맨 처음에는 성격 유형을 4개의 딕셔너리로 나누고(RT / CF / MJ / NA), max 값을 ans에 더해 주는 방식으로 답을 구하려고 했다.(ans가 3 이하인 경우 앞선 선지의 점수를 올려주고, ans가 5 이상인 경우 뒷 선지의 점수를 올려 주는 식으로 풀려고 했다.) 그러나 max값의 value를 찾아 주는 과정이 까다로울 것이라고 판단하였다. (가만히 생각해보니 같은 방식이라 별 다를게 없다.)
어쨌든 차분하게 순서대로 풀어 나갔다. 문제를 풀 때 여전히 까다롭게 푸는 경향이 있어 단순하고 로직을 차분하게 풀어 나가는 습관을 잘 들여야겠다,,,
240109 Javascript Answer
function solution(survey, choices) {
var answer = '';
var dic = {'R' : 0, 'T': 0, 'C' : 0, 'F': 0, 'J': 0, 'M' : 0, 'A' : 0, 'N' : 0}
// survay 순회하며 choice에 따른 점수 올려주어야 한다.
for (var idx = 0; idx < choices.length; idx++) {
if (choices[idx] > 4) {
dic[survey[idx][1]] += choices[idx] - 4
} else if (choices[idx] < 4) {
dic[survey[idx][0]] += 4 - choices[idx]
}
}
if (dic['R'] < dic['T']) {
answer += 'T'
} else {
answer += 'R'
}
if (dic['C'] < dic['F']) {
answer += 'F'
} else {
answer += 'C'
}
if (dic['J'] < dic['M']) {
answer += 'M'
} else {
answer += 'J'
}
if (dic['A'] < dic['N']) {
answer += 'N'
} else {
answer += 'A'
}
return answer;
}
짱 깔끔하다
'알고리즘 > programmers' 카테고리의 다른 글
| [Python/Javascript] 프로그래머스 : 완주하지 못한 선수 (0) | 2024.01.24 |
|---|---|
| [Python/Javascript] 프로그래머스 2020 카카오 인턴십 : 키패드 누르기 (0) | 2024.01.09 |
| [Python/Javascript] 프로그래머스 : 2019 KAKAO BLIND RECRUITMENT 실패율 (0) | 2024.01.04 |
| [Python/javascript] 프로그래머스 : 체육복 (0) | 2024.01.04 |
| [Javascript] 프로그래머스 : [1차] 비밀지도 (0) | 2023.12.28 |
TAGS.
