코딩테스트/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