코딩테스트/PYTHON

[프로그래머스][PYTHON] Lv. 0 가까운 1 찾기

_알파카 2024. 1. 30. 18:05
728x90

문제설명

https://school.programmers.co.kr/learn/courses/30/lessons/181898

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내 풀이

def solution(arr, idx):
    answer = 0
    
    """
    idx에 맞춰 arr 자르고(new_arr), 첫 번째 1인 원소 위치 찾아서 idx 길이 더하기
    """
    new_arr = arr[idx:]
    
    if new_arr.count(1) != 0:
        answer = new_arr.index(1)+idx
    else:
        answer = -1
    
    return answer

 

나쁘지는 않은 풀이라고 생각한다^^

이 역시 쉬운 문제였지만, 다른 사람 풀이를 남겨본다. 

 

다른 사람 풀이

def solution(arr, idx):
    answer = -1
    for i in range(idx,len(arr)):
        if arr[i]==1:
            answer = i
            break
    return answer

 

사실 idx의 인덱스보다 큰 배열을 자를 필요가 없다. 

for문을 돌 때, 시작을 idx로 지정하여 우리가 원하는 배열을 도출할 수 있다. 

-> 해당 for문을 돌며, arr의 원소 중 1이 처음으로 나올 때, 

그 인덱스를 answer로 저장한다. 

 

만약 1이 나오지 않으면, 기본 값으로 -1 도출!

 

 

나도 저런 생각이 바로바로 떠오르면 좋겠다. 

끄읏-!

728x90