본문 바로가기

앱 개발/Algorithm

first (나머지가 1이 되는 수 찾기)

 first 함수는 Kotlin 표준 라이브러리에서 제공하는 함수로서 컬렉션에서 조건을 만족하는 첫 번째 요소를 반환한다. 조건을 만족하는 요소가 없을 경우 예외를 발생시킬 수 있으므로 주의해야 한다. 인자로 디폴트 값을 받는 형태도 있어서 조건을 만족하는 요소가 없을 경우 지정된 디폴트 값을 반환할 수 있다. 한편 firstOrNull 함수는 조건을 만족하는 요소가 없을 경우 null을 반환하며 예외를 발생시키지 않는다.

 

val numbers = listOf(1, 2, 3, 4, 5)
val firstEven = numbers.first { it % 2 == 0 }
println("$firstEven")  // 2

 

 
< 문제 15번 >

 

자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요.

 

< solution >

 

class Solution {
    fun solution(n: Int): Int {
        require(n in 3..1000000){}
        var x = 2
        while (x < n && n % x != 1) {
        x++
        }
        return x
    }
}

 

------------------------------------------------------------------------------------------------------------------------------------

 

// 이 문제에서 first 함수를 사용하면 while문과 같은 알고리즘을 더 간결하게 나타낼 수 있다.

 

class Solution {
    fun solution(n: Int): Int {
        require(n in 3..1000000)
        return (2 until n).first { n % it == 1 }
    }
}

728x90