문제 출처 : 프로그래머스
문제는 여기에
문제
- 자연수 n이 매개변수로 주어진다.
- n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return하는 solution 함수를 완성해라
입출력 예
접근
1. for문을 돌리면서 나머지가 1인 것들을 찾아야겠다.
나의 코드
def solution(n):
result = []
for i in range(2,n):
if n % i == 1:
result.append(i)
answer = min(result)
return answer
고찰
나는 별 생각없이 n을 x로 나눈 나머지가 1인 것들을 모두 찾아 리스트에 추가하였고
그 리스트들 중에서 가장 작은 수를 return 하는 방법을 했는데
생각해보니 n-1까지 for문을 돌면서 나머지가 1인 것들을 모두 찾는 것은 비효율적이라는 것이다.
나머지가 1이 되는 것을 찾으면 반복을 빠져나오자
수정한 코드
def solution(n):
for i in range(2,n):
if n % i == 1:
break
answer = i
return answer
'🧑💻 Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 1] 추억점수 (Python) (0) | 2023.09.07 |
---|---|
[프로그래머스 Level 1] 과일 장수 (Python) (0) | 2023.08.31 |
[프로그래머스 Level1] 삼총사 (Python) (0) | 2023.08.30 |
[프로그래머스 Level 1] 달리기 경주 (Python) (0) | 2023.08.24 |
[프로그래머스 Level 1] 크기가 작은 부분 문자열 (Python) (0) | 2023.08.22 |