본문 바로가기
🍎 Swift/Programmers

[👾 Programmers] 15. 나머지가 1이 되는 수 찾기

by 솔비님 2024. 6. 19.

1. 문제 설명 (📎Link)

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

 

2. 제한사항

3 ≤ n ≤ 1,000,000


📝 문제

import Foundation

func solution(_ n:Int) -> Int {
    return 0
}

 

 

💻 내가 푼 방법(테스트 성공)

import Foundation

func solution(_ n:Int) -> Int {
    //1부터 n까지 돌릴 변수x 선언
    var x = 1
    //찾은 약수를 모두 담아줄 배열 arr 선언
    var arr: [Int] = []
    
    //x가 n이랑 같지 않을 때 까지 반복하는 while문 설정
    while x != n {
        //n 나누기 x의 나머지가 1이라면
        if n % x == 1 {
        	//상단에 선언해둔 arr 배열에 x를 담는다
            arr.append(x)
        }
        //변수 x를 1씩 올린다(n이랑 같지 않을 때 까지 / n 바로 직전까지)
        x += 1
    }
    
    //약수가 담긴 arr 배열 중 최소값을 뽑아냄
    x = arr.min()!
    
    return x
}

 


🔎 의문점과 공부한 것

1. append 함수를 처음 써봤고

2. 배열 중 최솟값을 찾아낸 min() 함수를 알아보았다

옵셔널이 붙는 이유에 대해 더 공부할 것!!