[코테연습] 나머지가 1이 되는 수 찾기 (12/28 TUE)

5772 단어 swiftswift

오늘 할 일을 조금 일찍 끝내서 코테 하나 더 풀어봤다! 🤓

제목만 보면 되게 쉬울거 같은 "나머지가 1이 되는 수 찾기"..
사실 쉬운거 맞는거 같은데 난 안쉬웠다. 이거 푸는데 또 45분 걸려버림🥲

[오늘의 문제!✏️]

자연수 n을 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 리턴하는 solution 함수를 구현해라!

10 % 3 = 1
12 % 11 = 1
5 % 2 = 1
에서 3, 11, 2를 구해야하는 부분인데..

말로하면 너무 쉬운데 컴퓨터한테 시키기 왜이렇게 어려운걸까! 😊

진짜 40분동안 머리 싸매고 있다가 갑자기 떠올라서 호다닥 푼 내 풀이..


<내가 짠 코드>
로직 : x를 우선 n으로 설정해두고, for문 돌면서 n % x == 1일때를 찾는다!

func solution(_ n: Int) -> Int {
   var x = n
   
   for i in 1...x {
      if n % i == 1 {
         x = i
         break
      }
   }
   return x
}

x를 굳이 선언할 필요가 없어보인다.


<비슷한 풀이 1>

func solution(_ n: Int) -> Int {
   for i in 1..<n {
      if n % i == 1 { return i }
   }
   return 0
}

<비슷한 풀이 2>

func solution(_ n: Int) -> Int {
   for i in 1..<n {
      if n % i == 1 { return i }
   }
   return n-1
}

<다른 풀이>
로직 : 1을 변수 answer에 저장해두고, n % answer가 1이 아닐 경우, answer를 1씩 증가시키면서 n % answer가 1일 때 answer를 리턴한다.

func solution(_ n: Int) -> Int {
   var answer = 1
   
   while n % answer != 1 {
      answer += 1
   }
   return answer
}

좋은 웹페이지 즐겨찾기