Back/TIL
07.15. 프로그래머스 : 2의 영역
떠굥
2023. 7. 15. 23:06
문제 링크
1. 나의 풀이
index 함수와 rindex 함수를 이용하고 싶었지만, 마지막 2의 index를 구하는 과정에서 rindex는 왜인지 알 수 없는 오류를 뱉었다. 그래서 다른 방식으로 풀어봤다.
def solution(arr):
in_2 = []
arr2 = []
for i in range(len(arr)):
if arr[i] == 2:
in_2.append(i)
if len(in_2) == 1:
arr2.append(arr[in_2[0]])
elif in_2 == []:
arr2 = [-1]
else:
arr2 = arr[in_2[0]:in_2[-1]+1]
return answer
느낀 점 : 함수 안의 조건들을 다 통과해야 하기때문에, 해결에 시간이 오래걸린다.
2. 인상깊은 풀이
if 2 not in arr:
return [-1]
return arr[arr.index(2) : len(arr) - arr[::-1].index(2)]
느낀 점 : 함수를 쓰고 싶어도 방법을 모르면 제대로 쓰지를 못한다.. 최대한 많이 쓰고 많이 보고, 머리에 많이 넣자.
3. 오늘 배운 것
1) [::-1] == reverse / rindex를 쓰면 왜인지 모를 오류가 생긴다. reverse를 쓰자.
2) arr.index(2) 2라는 원소의 index를 찾아라.
3) 원소 not in array