[Python]프로그래머스_Lv1 : 나머지가 1이 되는 수 찾기

Alal11·2022년 7월 28일
0
post-thumbnail

출처

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


문제 설명

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


제한사항

3 ≤ n ≤ 1,000,000


입출력 예

nresult
103
1211

입출력 예 설명

입출력 예 #1

10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.

입출력 예 #2

12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.


➡️문제 분석

n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하는 문제이다.

예를 들어 n = 10이면,
x = 1일 때 나머지 : 0
x = 2일 때 나머지 : 0
x = 3일 때 나머지 : 1
x = 4일 때 나머지 : 2
. . .

따라서 n = 10이면 3을 return 한다.


➡️코드(⭕)

def solution(n):
    
    for i in range(2, n):				# 2부터 n-1까지 반복
        
        if n % i == 1:					# 나머지가 1일 때 i 반환
            return i

➡️코드 분석

  1. 2부터 n-1까지 차례대로 변수 i에 저장한다.

  2. n을 i로 나눈 나머지가 1이면, 그대로 i를 반환한다.


➡️end

c언어로 한번 풀어봤던 문제라서 쉽게 풀 수 있었다. 파이썬으로 푸니까 c언어에 비해 코드가 엄청 간단해진 것이 신기하다.

0개의 댓글