나머지가 1이 되는 수 찾기

Anna·2024년 6월 12일

코딩테스트

목록 보기
9/28
post-thumbnail

🌫️ 문제

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

🌫️ 제한 사항

3 ≤ n ≤ 1,000,000


👻 내 풀이

👻 1차 코드

class Solution 
{
    fun solution(n: Int): Int 
    {
        var answer: Int = 0
        println("--1차--")    // 로그 찍기
        for(x in 3..1000000)
        {
            if(n % x == 1)
            {
                answer = x
                println("--2차-- x : ${x} n : ${n}")  // 로그 찍기
                break
            }
        }
        return answer
    }
}

결과 : 테스트 2개만 틀렸다.. 로그 찍어 봤더니, 3이 안 찍히드라 오라라~~
재한사항을 헷갈려서 x in 3..1000000아닌 x in 2..n이어야 한다..

👻 2차 코드

class Solution 
{
    fun solution(n: Int): Int 
    {
        var answer: Int = 0
        for(x in 2..n)
        {
            if(n % x == 1)
            {
                answer = x
                break
            }
        }
        return answer
    }
}

성공 👍👍👍

👻 다른 사람 풀이 해석 (1)

class Solution 
{
    fun solution(n: Int) = (1..n).first { n % it == 1 }
}

👻 다른 사람 풀이 해석 (2)

class Solution 
{
    fun solution(n: Int): Int 
    {
        var answer = 1

        while (n % answer != 1) 
        {
            answer++
        }
        return answer
    }
}

0개의 댓글