-
2022 카카오인턴십 코딩테스트 - 성격유형검사하기 - 코틀린(Kotlin)알고리즘/프로그래머스 2022. 11. 14. 00:01반응형
https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=kotlin
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해석
실제로 코딩 테스트를 봤던 문제이지만 코틀린으로 다시 풀어보고자 합니다.
MBTI처럼 성격유형이 존재합니다.
점수는 1~7점으로 주어지고 "AN"에 대해 점수가 주어지면 1~3점은 A에 대하여, 5~7점은 N에 대해서 점수가 나갑니다.
최종적으로 모든 점수를 계산하고 다음표를 기반으로 큰 점수를 선택하여 string을 반환합니다.
이때 점수가 같다면 알파벳순이 빠른 것이 우선순위를 가집니다.
1번 지표 라이언형(R), 튜브형(T) 2번 지표 콘형(C), 프로도형(F) 3번 지표 제이지형(J), 무지형(M) 4번 지표 어피치형(A), 네오형(N) 코드
fun main() { val survey = arrayOf("AN", "CF", "MJ", "RT", "NA") val choices = intArrayOf(5, 3, 2, 7, 5) // val survey = arrayOf("TR", "RT", "TR") // val choices = intArrayOf(7, 1, 3) val answer = solution( survey = survey, choices = choices, ) print(answer) } fun solution(survey: Array<String>, choices: IntArray): String { val map = hashMapOf<Char, Int>() choices.forEachIndexed { index, score -> if (score > 4) { map[survey[index][1]] = map.getOrDefault(survey[index][1], 0) + kotlin.math.abs(4 - score) } else { map[survey[index][0]] = map.getOrDefault(survey[index][0], 0) + kotlin.math.abs(4 - score) } } val personalityType = arrayOf("RT" , "CF" , "JM" , "AN") val result = StringBuilder() personalityType.forEach { val getFirstScore = map.getOrDefault(it[0],0) val getSecondScore = map.getOrDefault(it[1],0) when{ getFirstScore >= getSecondScore -> result.append("${it[0]}") getFirstScore < getSecondScore -> result.append("${it[1]}") } } return result.toString() }
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - 카드 짝 맞추 기 - 자바(JAVA) (0) 2022.07.23 [프로그래머스] N-Queen -자바(JAVA) (0) 2022.07.12 [프로그래머스] 부족한 금액 계산하기 - 자바(JAVA) (0) 2022.07.10 [프로그래머스] 메뉴 리뉴얼 - 2021 KAKAO BLIND RECRUITMENT 메뉴 리뉴얼 (0) 2022.06.23 [프로그래머스] 징검다리 건너기 : 2019 카카오 개발자 겨울 인턴십 - 자바(JAVA) (0) 2022.06.20