코딩 테스트/프로그래머스
[Python] 프로그래머스 lv.0 2의 영역
위시리
2024. 10. 29. 19:21
문제 분석
- 정수 배열 arr
- 배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 return
- arr에 2가 없으면 -1 return
코드 설계
- 배열의 값을 하나씩 확인하면서 2가 저장되어 있는 배열 확인
- max, min 인덱스를 찾아서 해당 부분의 배열 값만 slice하여 return
정답 코드
def solution(arr):
answer = []
for a in range(len(arr)) :
if arr[a] == 2 :
answer.append(a)
if len(answer) != 0 :
return arr[min(answer) : max(answer)+1]
else :
return [-1]
다른 사람 코드 1
def solution(arr) :
if 2 not in arr :
return [-1]
return arr[arr.index(2) : len(arr) - arr[::-1].index(2)]
- arr[::-1] : 문자열 거꾸로 출력
다른 사람 코드 2
def solution(arr) :
check = []
if 2 not in arr :
return [-1]
else :
for i in range(0, len(arr)) :
if arr[i] == 2 :
check.append(i)
return arr[check[0] : check[-1] + 1]