반응형
상세한 문제는 여기서 확인할 수 있습니다.
간단하게 Array A에서 없는 값중 가장 큰 값을 반환하는 문제입니다. Array A의 모든 값이 음수면 1을 순열이면 Array A에 있는 값들중 가장큰 값보다 1큰 값을 반환하는 문제입니다.
해결 code는
un solution(A: IntArray): Int {
// write your code in Kotlin
var max = 0;
for(i in A.indices){
if(max < A[i]){
max = A[i]
}
}
var B = BooleanArray(max)
var isPositive = false
for(i in A.indices){
if(A[i] > 0){
isPositive = true
B.set(A[i]-1, true)
}
}
if(!isPositive){
return 1
}
for(i in B.indices){
if(B[i] == false){
return i+1
}
}
return B.size+1
}
coding은 간단합니다.
가장큰 값을 찾고, 그 숫자만큼의 크기를 가지는 Array B를 만듭니다.
그래서 그 Array B에 숫자가 존재하는 순서를 true로 바꿔줍니다. 이때 음수도 고려해야하기 때문에 양수 값이 있는지 없는지도 체크합니다. (양수가 없으면 바로 1을 return 하면되기 때문입니다.)
그리고 생성된 Array B를 통하여 false를 찾아 그 값에 1을 더해서 반환하면 됩니다.(Array는 0부터 시작하기 때문입니다.) 만약 false가 없다면 크기에 1을 더해서 반환합니다.
반응형
'2023년 이전 > Codility' 카테고리의 다른 글
Lesson 5 - GenomicRangeQuery (0) | 2019.12.06 |
---|---|
Lesson 5 - PassingCars (0) | 2019.11.28 |
Codility - Lesson 4 MaxCounters (0) | 2019.11.14 |
Codility - Lesson4 FrogRiverOne (0) | 2019.11.14 |
Codility - Lesson 4 PermCheck (0) | 2019.11.12 |