본문 바로가기
Kotlin Language/programmers

Kotlin - 나머지가 1이 되는 수 찾기 프로그래머스 코딩 연습 (15)

by Classic Master 2023. 12. 3.
728x90

프로그래머스 문제

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

n result
10 3
12 11

코틀린 나머지가 1이 되는 수 찾기 답

class Solution {
    fun solution(n: Int): Int {
   		for( i in 2..n-1)
        for (n%i == 1) return i
                }
        return 0 
        }
     }

코틀린 풀이

매게변수 n을 입력받아 for문을 사용해 i 는 2부터 n -1 까지의 값을 순회하는 반복문을 만듭니다.

그 후 순회 중인 값 i가 n으로 나누어 떨어지지 않고 나머지가 1이면, 해당 값을 반환하고 함수를 종료합니다.

반복문을 모두 순회했는데도 나누어 떨어지지 않는 수를 찾지 못했을 경우 0을 반환합니다.

  • 1은 모든 정수의 약수이기 때문에 2부터 시작합니다.

n - 1을 하는 이유?

만약 루프의 종료 조건을 for (i in 2..n)으로 설정한다면 루프는 2부터 n까지의 모든 수를 검사하게 됩니다. 이 경우 n 자체가 n % i == 1을 항상 만족시키는 경우가 생길 수 있습니다. 그러나 우리가 찾고자 하는 것은 1을 제외한 가장 작은 양의 정수이므로, n 자체는 고려하지 않기 위해 종료 조건을 n-1로 설정합니다.

즉, for (i in 2..n-1)은 2부터 n-1까지의 범위에서만 n을 나눌 때 나머지가 1인 i를 찾는 것을 의미합니다.

 

728x90
반응형