일일구름 IT

프로그래머스 lv.1 [성격 유형 검사하기] 2022 KAKAO TECH INTERNSHIP 본문

프로그래머스/프로그래머스 lv.1

프로그래머스 lv.1 [성격 유형 검사하기] 2022 KAKAO TECH INTERNSHIP

일구름 2022. 8. 25. 17:35

문제

https://school.programmers.co.kr/learn/courses/30/lessons/118666

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

입출력 예시:

 

내 문제 풀이 :

def solution(survey, choices):
    answer = ''
    type = {'R' : 0, 'T' : 0, 'C' : 0, 'F' : 0, 'J' : 0, 'M' : 0, 'A' : 0, 'N' : 0}
    score = {1 : 3, 2 : 2, 3 : 1, 5 : 1, 6 : 2, 7 : 3}
    for idx, i in enumerate(survey):
        if choices[idx] < 4 :
            type[i[0:1]] += score[choices[idx]]
        elif choices[idx] > 4 : 
            type[i[1:]] += score[choices[idx]]
    if type['R'] >= type['T']:
        answer =  answer+'R'
    else :
        answer =  answer+'T'
    if type['C'] >= type['F']:
        answer =  answer+'C'
    else :
        answer =  answer+'F'
    if type['J'] >= type['M']:
        answer =  answer+'J'
    else :
        answer =  answer+'M'
    if type['A'] >= type['N']:
        answer =  answer+'A'
    else :
        answer =  answer+'N'

    return answer

R, T, C, F, J, M, A, N 각각의 성격 유형에 점수를 기록하기 위해 type 딕셔너리를 생성하였다.

 

점수 또한 choices 숫자와 각 점수를 짝 지어 score 딕셔너리를 생성하였다.

 

이제 각 성격 유형의 점수들을 합산하여야 하기 때문에 enumerate를 이용하여 survey의 인덱스와 요소를 for문으로 순서대로 추출이 되게끔 하였다.

 

choices[idx]가 4미만인 경우엔 앞 글자에 점수를 추가해주었고 4초과인 경우에는 뒷 글자에 점수를 추가해주었다.

 

마지막으로는 if, else문을 이용하여 각 지표에서 점수가 더 큰 유형을 answer에 추가해주었고 점수가 서로 같은 경우에는 앞 유형이 추가되도록 하였다.

 

다른 사람 문제 풀이:

for idx, choice in enumerate(choices):
        if choice - 4 > 0:
            scores[survey[idx][1]] += choice - 4
        elif choice - 4 < 0:
            scores[survey[idx][0]] += 4 - choice

다른 사람이 나와 다르게 한 부분은 각 유형에 choices 숫자에 해당하는 점수를 부여해주는 부분이다.

 

나는 선택 수와 점수를 딕셔너리로 짝지었지만 이 사람은 선택 숫자가 4초과인 경우는 숫자에서 4를 뺀 값과 점수가 같고 4미만인 경우엔 4에서 숫자를 뺀 값과 점수가 같다는 점을 이용하였다.

 

 

 

 

저번에 [모의고사] 라는 문제를 풀며 enumerate라는 함수를 알게 되었는데 이번 문제를 풀 때 유용하게 사용할 수 있었다.

코테 연습 문제를 풀면서 뭔가 앞으로 나아가지 못한다는 느낌에 현타가 올 때가 있었는데 문제를 풀며 알게 된 지식이 써먹을 데가 있다는 것에 지금 하고 있는 것이 의미가 없지 않다고 느껴졌다.

 

https://www.notion.so/ba47e37a8e854ec6add6b9413c45aa9e

 

성격 유형 검사하기

문제 설명

www.notion.so