목록코딩테스트 풀이 (28)
Simple&Natural
어떤 분이 질문을 하는 바람에 답변을 하는 겸 풀었던 행렬의 곱셈 관련 문제이다. 2차원 행렬의 곱셈은 기본적으로 m x n 행렬과 n x r 행렬의 곱인 경우에만 계산이 가능하다. 행렬을 2차원 배열로 만들고 앞 행렬의 행(M)과 뒤에 곱해지는 행렬의 열(R)을 각각 곱하고 합하면(N) 된다. 언어: Kotlin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 fun main() { for (arr in solution("2 3 2", "100 0 1 2 3 4", "50 60 70 75 8 9")) { println() for (num in arr) { print("$num ") } } }..
완전탐색을 이용하였고 Stack을 사용하여 바구니를 구현하였다. 언어: Kotlin 소스코드: 1234567891011121314151617181920212223242526272829303132333435363738394041import java.util.* class Solution { fun solution(dollBox: Array, picker: IntArray): Int { var answer = 0 val basket = Basket() for (pick in picker) { for (dolls in dollBox) { val pickedDoll = dolls[pick-1] if (pickedDoll!=0) { dolls[pick-1] = 0 basket.stack(pickedDoll) br..
2020 카카오 공채 코딩테스트 - 가사검색 코틀린 풀이 최종 풀이는 맨 아래에 있습니다. 최초 풀이과정) 실제 정확도 부분의 정답률은 30%가 넘어가는데 반해 효율성 테스트에서 정답률이 1%가 안되는 문제. queries에 담겨있는 단어를 words의 단어와 하나씩 비교하며 조건을 판단하면 절대 통과를 못할 것으로 예상하여 나름대로 해시맵 구조를 이용해 대상 words의 갯수을 낮추어 보았는데 그래도 효율성에서 1/3밖에 득점하지 못했다. 트라이와 이진탐색을 조합하면 시간복잡도를 낮추는 게 가능한 걸로 보인다. 사용언어 : 코틀린 Kotlin 최초 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31..
풀이과정) 우리가 흔히 노가다라고 하는 걸 알고리즘에서는 '완전탐색' 이라는 좋은 용어로 포장한다. 사용언어 : Kotlin 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 fun solution(brown: Int, red: Int): IntArray { var answer = intArrayOf() for(i in 1..red) { if(red%i==0) { var redVert = i var redHor = red/i var brownVert = redVert+2 var brownHor = redHor+2 if(((brownHor+brownVert)*2-4)==brown) { answer = intArrayOf(brownHor, br..