level0_가까운 1 찾기

2024. 10. 30. 22:10파이썬_알고리즘(코딩테스트)/level0

내가 제출한 코드

def solution(arr, idx):
    for i in range(idx,len(arr)):
        if arr[i] == 1:
            return i
    return -1
  • idx인덱스부터 시작해서 arr배열의 끝까지 반복한다.
  • if절
    • 각 요소 arr[i]를 확인하면서, 값이 1인 첫 번째 요소를 찾으면 해당 인덱스 i를 반환한다.
  • 만약 idx 이후에 값이 1인 요소를 찾지 못한다면 -1을 반환한다.

다른사람이 제출한 코드

def solution(arr, idx):
    answer = 0
    try:
        answer = arr.index(1, idx)
    except:
        answer = -1

    return answer
  • arr.index(1, idx)
    • arr배열에서 값 1을 idx 인덱스부터 찾는다.
    • index() 메소드는 값을 찾으면 해당 인덱스를 반환한다.
    • 만약 idx 이후에 값 1이 나오지 않는다면, index() 메소드는 ValueError 예외를 발생시킨다.
      • 이 경우 except 블록으로 이동하여 answer에 -1을 할당한다. 
.index()란?

- 리스트 매소드 중에서 index()는 리스트 중에서 특정한 원소가 몇 번째에 처음으로 등장했는지를 알려주는데, 인덱스를 알려주기 때문에 index 라는 이름으로 되어 있다. 그런데 만약에 두 번 이상 원소가 중복되어 존재하는 경우에는 맨 처음 등장한 순간의 인덱스를 출력해준다는 점을 기억!!!