반응형

문제 설명

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

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

나의 풀이

import java.util.stream.IntStream;

public class NumberOfRemainingOne {

    public static void main(String[] args) {
        int n = 12;
        solution(n);
    }

    public static int solution(int n) {
        int answer = 0;
        while(true){
            if(n % ++answer == 1) break;
        }
        return answer;
    }
}

접근

별 다른 로직이 필요 없어 보이고, 역시 가장 단순하지만 기본적인 접근으로 시작 (시작과 끝 숫자를 잘못 정했지만..)

문제 풀이 컨셉은 다들 비슷했고, 나는 끝을 알수 없기에 while문을 적었으나, answer < n 으로 조건을 걸고, 시작은 2부터 했으면 더욱 깔끔한 코드일듯 하다

다른 사람의 풀이

    // Stream 을 활용한 다른사람의 풀이
    public static int solution(int n) {
        return IntStream.range(2,n).filter(i -> n % i == 1).findFirst().orElse(0);
    }

오늘도 Stream 한스푼! 일단 성능은 차치하고, 쓰는 법이나 익힐겸 적어보았다.
IntStream으로 2부터n까지 범위를 주되, filter로 조건을 걸어서 나머지가 1인 숫자, 그중에 첫번째를 찾는 로직

느낀점

  • 이번 문제는 딱히...없는듯
반응형

+ Recent posts