728x90
문제설명
https://school.programmers.co.kr/learn/courses/30/lessons/181898
내 풀이
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
'코딩테스트 > PYTHON' 카테고리의 다른 글
[프로그래머스][PYTHON] Lv. 0 조건에 맞게 수열 변환하기 3 ( + map과 lambda) (1) | 2024.02.02 |
---|---|
[프로그래머스][PYTHON] Lv. 0 전국 대회 선발 고사 ( + 딕셔너리 설명) (0) | 2024.01.31 |
[프로그래머스][PYTHON] Lv. 0 배열 만들기 1 (0) | 2024.01.30 |
[프로그래머스][PYTHON] Lv. 1 달리기 경주 (1) | 2024.01.30 |
[프로그래머스][PYTHON] Lv. 1 [PCCE 기출문제] 10번 / 데이터 분석 (1) | 2024.01.26 |