Python(알고리즘,문제풀이)/프로그래머스(코딩기초트레이닝)
코딩기초트레이닝 / 가까운 1찾기
박혀노
2023. 10. 18. 23:19
728x90
📚문제
📝풀이
def solution(arr, idx):
result = 0
for i in range(idx,len(arr)):
if arr[i] ==1:
result += i
return result
return -1 if result ==0 else result
--------------------------------------
def solution(arr, idx):
result = 0
for i in range(idx,len(arr)):
if arr[i] ==1:
result += i
break
return -1 if result ==0 else result
둘다 내가 푼거긴 한데
왜 아래는 정답이 안될까?
이론상으로는 문제가 없어 보이는데 흠
아!!
만약 i가 0일 때 (idx가 0일때) 1이 나온다면
result 에 0이 추가된 다음 break되고
for 문을 빠져나와서
그 다음은 result가 0이므로 -1을 리턴한다
깨달았다...
그러면 위 코드도 똑같은거 아닌가 하고 생각할 수 있지만
위 코드는 i=0을 result에 추가한 뒤에 result(0)값을 리턴하기 때문에
-1을 리턴하는 아래코드와 다르다
+ 좀 더 간단히 생각하는 습관을 가져보자..^^
def solution(arr, idx):
for i in range(idx, len(arr)):
if arr[i] == 1:
return i
return -1
728x90