코딩,해볼까

07.15. 프로그래머스 : 2의 영역 본문

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

Comments