본문 바로가기
반응형

codility24

Lesson 10 - MinPerimeterRectangle 자세한 문제는 여기서 확인하시면 됩니다. N의 약수 A와 A*B=N해서 그 수를 만드는 B를 사용하여 2*(A+B)시 제일 작은 수를 구하는 문제 ex) N=30 이면 (1,30) = 62, (2,15) = 34, (3,10) = 26, (5,6) = 22 이렇게 나타나므로 22가 제일 작은 값이된다. code class Solution { public int solution(int N) { // write your code in Java SE 8 int k = (int)Math.sqrt(N); int result = Integer.MAX_VALUE; for(int i = 1; i c){ result = c; } } } return result; } } 간단한 문제다 제곱근까지만 확인하여 제일 작은 값을.. 2020. 1. 27.
Lesson 6 - NumberOfDicIntersection 자세한 문제는 여기서 확인하시면 됩니다. 이 문제는 array의 index가 위치고 그 값이 반지름이되어 원들이 겹치는 횟수를 반환하는 문제입니다. 예제의 겹치는 횟수는 0, 1 / 0, 2 / 0, 4 1, 2 / 1, 3 / 1, 4 / 1, 5 2, 3 / 2, 4 3, 4 4, 5 이렇게 겹쳐지기 때문에 11입니다. 첫번째 알고리즘을 사용한 방법은 O(N**2) 복잡도를 나타냈습니다. 그리고 결과는 75% fun solution(A: IntArray): Int { var count = 0 for(i in A.indices){ for( j in i+1 until A.size){ if(j-A[j]=i+A[i]){ count++ }else if(i-A[i]=j-A[j] ){ count++ } } if(.. 2020. 1. 20.
Lesson7 - fish 자세한 문제는 여기서 확인하시면 됩니다. 간단하게 A array는 물고기 크기 B array는 물고기의 방향인데 다른 방향의 물고기들이 만나면 더 큰 물고기가 작은물고기를 잡아 먹습니다. 그리고 B array에서 0은 위로 1은 아래로 내려가는 물고기를 말합니다. 위의 조건에 맞도록 array들을 분석해서 마지막으로 남은 물고기의 갯수를 반환하는 문제 입니다. 해결 code fun solution(A: IntArray, B: IntArray): Int { val downFish = arrayListOf() var count = 0 for(i in A.indices) { if(B[i] == 1){ downFish.add(A[i]) }else{ while(downFish.size > 0){ if(downFi.. 2020. 1. 20.
Lesson 7 - Nesting 자세한 문제는 여기서 확인하시면 됩니다. Stirng 인 ( , )가 알맞게 짝을 이루면 1 아니면 0을 반환합니다. (비었을 경우에도 1입니다.) ex) "(()(())())"면 1 이고 "())"면 0 입니다. fun solution(S: String): Int { var result = 0 if(S.isEmpty()){ return 1 } var stack = mutableListOf() if(S[0].toString() == ")") return 0 for(i in S.indices){ if(S[i].toString() == ")"){ if(stack.size > 0){ stack.pop_nest() }else if(stack.size == 0){ return 0 } }else if(S[i].to.. 2020. 1. 7.
반응형