728x90
코딩 테스트 . 추억점수
https://school.programmers.co.kr/learn/courses/30/lessons/176963
나의 문제 풀이 .
해쉬맵과 ContainsKey() 를 사용해서 풀었다.
private fun solution(
name: Array<String>,
yearning: IntArray,
photo: Array<Array<String>>
): IntArray {
var answer: IntArray = intArrayOf()
val hashMap = HashMap<String, Int>()
name.forEachIndexed { index, s ->
hashMap[s] = yearning[index]
}
photo.forEach { array ->
var b = 0
array.forEach {
if (hashMap.containsKey(it)) {
b += hashMap[it]!!
}
}
answer += b
}
return answer
}
고수의 문제 풀이.
zip() 과 toTypedArray(), toMap(), sumOf() 를 사용해서 풀었다.
fun solution(names: Array<String>, yearnings: IntArray, photoes: Array<Array<String>>): IntArray {
val map = names.zip(yearnings.toTypedArray()).toMap()
return photoes.map { photo -> photo.sumOf { map[it] ?: 0 } }.toIntArray()
}
레벨 1 코딩 테스트가 어느 덧 끝났다.
많이 오래 걸렸지만 그래도 뿌듯한 건 뿌듯한 거라고 생각하고 언제쯤 고수들의 코드로 작성할 수 있을지
현타가 많이 온다. 아직도 가야할 길이 많지만 조금이라도 성장하려고 노력해야겠다.
'알고리즘' 카테고리의 다른 글
[코딩 테스트] Level. 2 JadenCase 문자열 만들기 (코틀린) (0) | 2023.08.07 |
---|---|
[코딩 테스트] Level. 2 하노이의 탑 (코틀린) (0) | 2023.07.27 |
[코딩 테스트] Level. 1 둘만의 암호 (kotlin,코틀린) (0) | 2023.06.16 |
[코딩 테스트] Level. 1 과일장수 (kotlin,코틀린) (0) | 2023.05.18 |
[코딩 테스트] Level. 1 푸드파이터 개최 (0) | 2023.05.17 |