반응형
문제 설명
자연수 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인 숫자, 그중에 첫번째를 찾는 로직
느낀점
- 이번 문제는 딱히...없는듯
반응형
'개발 > 코딩 테스트' 카테고리의 다른 글
[알고리즘] 프로그래머스 > 정렬 > 가장 큰 수 (0) | 2022.07.24 |
---|---|
[프로그래머스] 문자열 다루기 기본 (0) | 2022.07.06 |
[프로그래머스] 없는 숫자 더하기 (0) | 2022.07.05 |
[프로그래머스] 완전 탐색 - 모의고사 (0) | 2022.05.28 |
[프로그래머스] 정수 제곱근 판별 (0) | 2022.05.28 |