순간을 기록으로

[Java] 나머지가 1이 되는 수 찾기 | 프로그래머스 본문

Problem Solving

[Java] 나머지가 1이 되는 수 찾기 | 프로그래머스

luminous13 2022. 4. 18. 12:47

문제

https://programmers.co.kr/learn/courses/30/lessons/87389?language=java 

 

코딩테스트 연습 - 나머지가 1이 되는 수 찾기

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

programmers.co.kr

 

풀이

매개변수로 주어지는 n을 x로 나눈 나머지가 1이 되는 가장 작은 x를 찾는 문제입니다.

x값을 1부터 값을 시작해서 1씩 증가하여 나머지가 1이 되는지 비교합니다.

가장 처음으로 나머지가 1이 되는 순간이 가장 작은 x이므로 그 값을 반환합니다.

 

package 프로그래머스.레벨1.나머지가1이되는수찾기;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
/*
* n을 x로 나눈 나머지가 1이 되도록하는 가장 작은 x를 구하세요
* - n%x == 1 이어야 한다
* - x를 1부터 1씩 증가하되, 정해진 횟수는 없으므로 where로 무한 루프를 돌린다.
* - n%x == 1일 때 무한 루프를 탈출한다.
* */
public class Solution {
    public int solution(int n) {
        int x = 1;

        while(true) {
            if (n%x == 1) break;
            x++;
        }

        return x;
    }

    @Test
    void test() {
        Assertions.assertEquals(3, solution(10));
        Assertions.assertEquals(11, solution(12));
    }
}
Comments