- 알고리즘 공부
- 장고 기초
- Spring 초보
- 백준 dp
- 백준 바닥장식 python
- 프로그래머스
- 프로그래머스 고득점 kit
- 바닥장식 파이썬
- Django 기초
- 프로그래머스 전화번호 목록 python
- 백준
- 프로그래머스 알고리즘 고득점 kit
- dp 알고리즘
- 코딩테스트
- 장고
- 프로그래머스 레벨1
- 코딩테스트 연습
- 백준 다이나믹프로그래밍
- 코테 연습
- 스프링 초보
- 프로그래머스 전화번호 목록 파이썬
- Django
- 프로그래머스 level1
- spring 기초
- programmers
- 프로그래머스 레벨2
- 코테
- 스프링 기초
- 알고리즘 문제
- 전화번호 목록 python
- Today
- Total
일일구름 IT
프로그래머스 lv.1 [성격 유형 검사하기] 2022 KAKAO TECH INTERNSHIP 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/118666
입출력 예시:
내 문제 풀이 :
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
'프로그래머스 > 프로그래머스 lv.1' 카테고리의 다른 글
프로그래머스 Lv.1 [모의고사] 완전탐색 (0) | 2022.08.21 |
---|---|
프로그래머스 lv.1 [체육복] 탐욕법 (0) | 2022.08.03 |
프로그래머스 lv.1 [k번째수] 정렬 (0) | 2022.07.14 |
프로그래머스 lv.1 [포켓몬] 해시 (0) | 2022.07.14 |
프로그래머스 lv.1 [소수 만들기] Summer/Winter Coding(~2018) (0) | 2022.07.06 |