시작하며...
모든 알고리즘 문제 풀이는 제가 직접 짜서 정답을 맞춘 결과만을 공유합니다.
마지막 'More Solution'은 다른 정답자들 풀이 중 생각지 못했던 부분들이나 좋게 느껴진 풀이법 몇개를 가져와서 공유하였습니다.
[Level 1] 나머지가 1이 되는 수 찾기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
제한사항
- 3 ≤ n ≤ 1,000,000
입출력 예
![](https://blog.kakaocdn.net/dn/bpbPsq/btrUsomjMdm/42rKRkkHFtBzFh7JY4i0GK/img.png)
입출력 예 설명
입출력 예 #1
- 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.
입출력 예 #2
- 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.
My Solution
def solution(n):
return [i for i in range(2, n) if n % i == 1][0]
- 반복문을 돌면서 n에 i 를 나누어서 나머지가 1인 것들만 남기는 List Comprehension을 만들고 그 중 첫번째의 가져와서 리턴
- 0으로는 나눌수 없고, 1로 나누면 나머지가 1이 나올수가 없으므로 반복 시작은 2부터 시작하게 구성
More Solution
def solution(n):
return next(i for i in range(2, n) if n%i == 1)
내 풀이와 같지만 위 풀이는 next함수를 이용해 Iterator 에서 첫번째 값을 가져오도록 하였다.
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
'Algorithm > Programmers' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 음양 더하기 (0) | 2022.12.27 |
---|---|
[Algorithm] 프로그래머스 - 정수 내림차순으로 배치하기 (0) | 2022.12.23 |
[Algorithm] 프로그래머스 - 하샤드 수 (0) | 2022.12.23 |
[Algorithm] 프로그래머스 - 자연수 뒤집어 배열로 만들기 (0) | 2022.12.23 |
[Algorithm] 프로그래머스 - 행렬의 덧셈 (0) | 2022.12.23 |
댓글