본문 바로가기
반응형

2023년 이전/Codility27

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.
Lesson10 - Peaks 자세한 문제는 여기서 확인하시면 됩니다. 이 문제는 A[N-1] A[N+1] 인 N 을 Peak이라 했을 때 Peak을 최소한 1개를 포함하는 block은 몇개인가를 찾는 문제입니다. block은 array A를 동일한 갯수로 나눈 각각을 말합니다. code를 보면 fun solution(A: IntArray): Int { if(A.size A[i - 1] && A[i] > A[i + 1]) { k.add(i) } } if(k.size == 0){ return 0 } for(i in k.size downTo 1){ if(A.size.. 2020. 1. 6.
Lesson 10 - CountFacotrs 자세한 문제는 여기서 확인하시면 됩니다. 간잔하게 주어진 N의 약수들을 계산하는 문제입니다. 첫번째 code는 fun solution(N: Int): Int { var count = 0 for(i in 1..N/2){ if(N%i == 0){ count++ } } return count+1 } 이렇게 했습니다. 하지만 엄청 큰 N수에 대해서 퍼포먼스가 나오지 않았습니다. 그래서 숫자들을 나열하고 생각해보니 1 2 4 8 16 / 1 2 3 4 6 9 12 18 36 를 보면 제곱근의 약수의 2배 -1 만큼 값이 존재하는 것을 확인 할 수 있고 1 2 3 4 6 8 12 24 의 경우에는 제곱근의 약수의 2배 만큼 존재하는 것을 확인 할 수 있습니다. 그래서 그 code는 fun solution(N: In.. 2020. 1. 6.
Lesson 9 - MaxProfit 자세한 문제는 여기서 확인가능합니다. 0 2020. 1. 6.
반응형