A. 어떤 문제가 있었는지
Q. 자연수 n이 매개변수로 주어집니다.
n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요.
답이 항상 존재함은 증명될 수 있습니다.
오류가 발생하지 않지만 테스트 통과가 불가능했다.
B. 내가 시도해본 것
def solution(n):
for i in range(2,n):
n % i == 1
return i
11개의 테스트 중 4개 항목만 통과되어 36.4점의 정확도를 나타냈다.
C. 어떻게 해결했는지
for 반복문에 break를 걸어줌으로써 정확도를 높일 수 있었다.
def solution(n):
answer = 0
for i in range(1,n):
if n%i == 1:
answer = i
break
return answer
D. 무엇을 새롭게 알았는지
1) break 정의: 반복문 흐름을 제어하고자 사용하는 함수
2) break 사용 이유: 루프를 조기에 종료하여 불필요한 반복을 피하기 위하여 사용된다.
코드 단계별 설명
def solution(n):
answer = 0 # 변수 초기화, 조건을 만족하는 i 값 저장
for i in range(1,n): # i를 1부터 n-1까지 순차적으로 증가시키며 반복
if n%i == 1: # n을 i로 나눈 나머지가 1인지 검사
answer = i # 조건이 True 인 경우, answer 변수에 현재 i 값 저장
break # 루프 조기 종료
return answer # answer 값 반환
break를 사용하면 조건을 만족하는 첫번째 i 를 찾았을 때 바로 루프가 종료되어 불필요한 반복을 피할 수 있어 효율적이다.
break가 없는 코드는 조건을 만족하는 i를 찾은 후에도 루프를 계속해서 실행하므로 정확도가 낮을 수 밖에 없다.
'Today I Learned' 카테고리의 다른 글
[내일배움캠프_데이터분석]3주차 금요일 TIL _ for 문 (0) | 2024.07.12 |
---|---|
[내일배움캠프_데이터분석] 3주차 목요일 TIL _ range( ) (0) | 2024.07.11 |
[내일배움캠프_데이터분석] 3주차 화요일 TIL _ Python 데이터 타입 (0) | 2024.07.09 |
[내일배움캠프_데이터분석] 3주차 월요일 TIL _ Alias (0) | 2024.07.08 |
[내일배움캠프_데이터분석] 2주차 금요일 TIL _ Like문, In문, REGEXP() (0) | 2024.07.05 |