본문 바로가기
반응형

codility24

Codility - Lesson 4 MaxCounters 자세한 문제는 여기서 확인할 수 있습니다. 간략하게 말하면 N 사이즈의 Array B를 만들어서 A array의 항목들을 하나 하나 확인하면서 그 값 a가 a>=1 && a= 1 && A[i] = 1 && A[i] 0){ ans = IntArray(N,{checkMax}) for(i in position+1 .. A.size-1){ ans[A[i]-1]++ } } return ans } A[K]가 N+1이 없을 경우와 이중 for문을 제거한 code 입니다. (해결하는데 약 1시간 반정도 걸렸네요) Array A를 for문을 통하여 위의 문제 조건에 맞게 Array ans의 각각의 요소 값을 1씩 증가 시킵니다. 그러다가 A[i]의 값이 N+1일 경우 그 position을 저장 하고 그때의 최대 값을 c.. 2019. 11. 14.
Codility - Lesson4 FrogRiverOne 자세한 문제는 여기서 확인할 수 있습니다. 문제를 요약하자면 개구리가 X까지 가야하는데 주어진 Array에있는 값들이 1부터 X까지 순서대로 나열되는데 Array의 몇번째 항목까지 필요한가를 return 하는 항목입니다. 주어진 example을 보면 X= 5이고 Array A는 A[0]=1 , A[1]=3 , A[2]=1 , A[3]=4 , A[4]=2 ,A[5]=3 ,A[6]=5 ,A[7]=4 일때 1,2,3,4,5를 만들기 위해서는 ArrayA의 A[6]까지 필요함으로 return 6이 된다는 의미 입니다. (문제 이해하는데 한 20분 쓴거 같네요) 그래서 해결 code는 fun solution(X: Int, A: IntArray): Int { // write your code in Kotlin va.. 2019. 11. 14.
Codility - Lesson 3 TapeEquilibrium 이번 문제도 여기서 확인 할 수 있습니다. 간단하게 array에서 일정 위치까지 두 파트로 나눠서 더한 값들의 차이의 절대 값중 작은 값을 return 하는 문제 입니다. fun solution(A: IntArray): Int { // write your code in Kotlin var min = 1; for(i in 1.. A.size-1){ var before = 0; for( j in 0 .. i-1){ before = before+ A[j] } var after = 0; for(k in i .. A.size-1){ after = after+A[k]; } var ans = Math.abs(before - after) if(min > ans){ min = ans; } } return min } 간단.. 2019. 11. 11.
Codility - Lesson3 PermMissingElem 이번에도 역시 상세한 문제는 여기서 확인 하실 수 있습니다. 간단하게 설명하면 숫자가 1부터 N+1까지 있는데 그중 없는 값을 반환하는 문제 입니다. code 보시겠습니다. fun solution(A: IntArray): Int { // write your code in Kotlin var B = BooleanArray(A.size+1) for(i in A.indices){ B.set(A[i]-1,true) } for(i in B.indices){ if(B[i] == false){ return i+1 } } return 0 } 간단하게 생각했습니다. A보다 1큰 Boolean array를 만들고 1부터 N+1까지 값이 있는 경우 B array의 그 위치를 true로 변경합니다.(Boolean Array .. 2019. 11. 8.
반응형