목록코딩테스트 풀이 (28)
Simple&Natural
fun solution(X: Int, Y: Int, D: Int): Int { if (X==Y) return 0 return if ((Y-X)%D==0) (Y-X)/D else ((Y-X)/D)+1 } https://app.codility.com/demo/results/trainingR5ZNAU-87U/
비트연산으로 푸는 문제인데 효율성에서 통과하기가 꽤 어렵다. 일단 처음 문제를 접했을 때 비트연산을 생각해내지 못했을 것 같아서 일단 패스
사이클 횟수 K가 배열 크기의 배수가 되는 case만 조심하면 된다. fun solution(A: IntArray, K: Int): IntArray { val answer = IntArray(A.size) val fixedK = A.forEachIndexed { index, value -> if ((index + K%A.size) < A.size) { answer[index + K%A.size] = value } else { answer[index + K%A.size - A.size] = value } } return answer } https://app.codility.com/demo/results/training8CAMW9-568/ Test results - Codility An array A con..
10진수 -> 2진수 변환을 직접 구현하지 않아도 자체적으로 지원하는 내장함수를 이용하면 된다. 각 문자를 완전탐색하면서 0인 경우 카운트를 올려주고, 1인 경우 여태까지 계산된 0의 갯수를 비교해주면 되는 간단한 로직이다. fun solution(N: Int): Int { var answer = 0 val binaryString = Integer.toBinaryString(N) var isCounting = false var tmpCount = 0 binaryString.forEach { char -> if (char=='1') { if (!isCounting) { isCounting = true } else { if (tmpCount > answer) { answer = tmpCount } tmpCo..