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

비얌·2022년 4월 16일
0

알고리즘

목록 보기
6/17

프로그래머스 1단계 문제인 '나머지가 이 되는 수 찾기' 문제를 풀어보았다.

문제

https://programmers.co.kr/learn/courses/30/lessons/87389

문제 설명

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

제한 사항

3 ≤ n ≤ 1,000,000

입출력 예


내 풀이

버전 1과 버전 2로 나누어 풀었는데, 사실 이 둘은 결국 똑같은 의미이고 answer라는 변수를 중간에 만들고 안만들고의 차이이다.

풀이 과정을 설명하자면 다음과 같다.

  1. 일단 x가 자연수여야 하니까 자연수인 1부터 n-1까지 for문을 이용해서 나눈다.
  2. 이때 for문에서 작은 수부터 나누므로 for문을 돌리다가 나머지가 1이 되는 순간이 가장 작은 x로 나눈 것이다.
  3. 나머지가 1이되는 순간의 i를 answer에 저장하고 break를 해서 for문을 빠져나온 후 answer를 리턴한다. (하지만 굳이 이 과정을 거칠 필요 없이 버전 2처럼 i를 바로 return해도 된다.)

python ver.1

# python ver.1
def solution(n):
    for i in range(1, n):
        if n % i == 1:
            answer = i
            break
    return answer

python ver.2

# python ver.2
def solution(n):
    for i in range(1, n):
        if n % i == 1:
            return i

스터디에서는 알고리즘을 자바스크립트로 풀고 있어서, 파이썬 코드를 자바스크립트로 바꿔보았다. 아직 자바스크립트가 익숙하지 않지만, 앞으로도 파이썬으로 문제를 푼 후 이렇게 자바스크립트 버전으로 바꾸는 과정을 거치려고 한다!

JavaScript ver.

function solution(n) {
    for(let i=1;i<n;i++){
        if(n%i===1){
            return i;
        }
    }
}
profile
🐹강화하고 싶은 기억을 기록하고 공유하자🐹

0개의 댓글