코딩테스트

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

다시은 2023. 12. 13. 09:51

 

 

 

실패한 풀이

n을 나눠서 나머지가 1인 동시에 3보다 크거나 같은 값들을 임의의 리스트에 집어넣고

그 리스트의 첫번째 값을 리턴했더니 정답률 80퍼...

 

  1. 생각해보니 나머지가 1인 나오는 가장 작은 자연수라 했으니 굳이 리스트에 다 집어넣어서 그 첫번째 값을 빼낼 필요가 없다. 어차피 for 문은 범위 내에서 작은 값부터 차례차례 대입하니 만족하는 값이 나오기만 하면 바로 반복문을 빠져나오면 되잖아
  2. i의 범위를 왜 3부터 시작하도록 만들었을까 n의 범위로 착각하고 실수로 집어넣은 것 같다. 
  3. 마찬가지로 i 는 3보다 크거나 같을 필요가 없다. 그건 n 의 제한사항이다.

 

두번째 풀이

class Solution {
    fun solution(n: Int): Int {
        var answer: Int = 0            
        for (i in 1..n) {
            if (n % i == 1) {
                answer = i
                break
            }
        }              
        return answer
    }
}

 

 

 

다른 사람 풀이

filter 에 이어 first 함수도 알게 되었다!