본문 바로가기
프로그래머스 코딩테스트 문제/Level 1

[프로그래머스] - 나머지가 1이 되는 수 찾기(C#)

by jyppro 2023. 7. 17.

나머지가 1이 되는 수 찾기

이번 문제는 나머지가 1이 되는 수 찾기 입니다. 이 문제는 월간 코드 챌린지 시즌3 출제문제 중 하나입니다.

 

문제 설명

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

 

제한 사항

  • 3 ≤ n ≤ 1,000,000

 

입출력 예

n result
10 3
12 11

 

시작 코드

using System;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        return answer;
    }
}

 

나의 풀이

using System;

public class Solution
{
    public int solution(int n)
    {
        int answer = 0;
        for(int x = 2; x < n; x++)
        {
            if(n % x == 1)
            {
                answer = x;
                break;
            } 
        }
        return answer;
    }
}

for문을 int형의 x를 사용하여 2부터 n까지 1씩 더하며 실행하고, 그 안에 if문을 통해서 n을 x로 나누었을 때 나머지가 1이 되는 수가 있다면 answer에 x를 넣도록 작성해줍니다.

 

여기서 중요한 건 break의 사용입니다. 문제에서 요구하는 것은 가장 작은 자연수 x를 구하는 것인데 코드의 진행을 살펴보면 2부터 시작해서 n까지 1씩 수를 올리며 계산하는 과정을 거칩니다. 하지만 for문 안에서 조건문을 작성하였기 때문에 순서대로 진행하다가 if문 안에 들어가는 조건이 충족되면 break로 빠져나와 answer를 리턴하고 끝나게 됩니다. 즉 조건문에 충족하는 가장 작은 수를 만나면 break로 인해서 자동으로 정답을 도출하게 됩니다.

 

<NEXT>

이번에는 "나머지가 1이 되는 수 찾기" 문제를 풀어봤습니다. 다음에는 "약수의 합" 문제를 풀어보도록 하겠습니다. 감사합니다.