Programming/python

[프로그래머스] 파이썬 Python 점의 위치 구하기 | List Tuple Boolean Indexing

방황하는 데이터불도저 2022. 12. 24. 00:45

프로그래머스 Lv 0. 문제

내가 푼 코드

def solution(dot):
    x, y = dot[0], dot[1]
    if x > 0:
        if y > 0:
            answer = 1
        else:
            answer = 4
    else:
        if y > 0:
            answer = 2
        else:
            answer = 3
            
    return answer

 

다른사람의 풀이

def solution(dot):
    quad = [(3,2),(4,1)]
    #or
    quad = [[3,2], [4,1]]
    return quad[dot[0] > 0][dot[1] > 0]

 처음보는 문법이다...

 주피터로 이렇게 저렇게 돌려보니 리스트 내 리스트가 있는 경우, boolean으로 indexing할 수 있는 것 같다.

 (신기하면서 누가 이런걸 개발했을까,,,,싶다)

boolean으로 indexing하는 이 문법이 생각나는데,

a=[1,2,3]
b=[True,False,True]
print(a[b])

#output: [1,3]

일단 저 문법은 sub-list or tuple안에 2개의 인자 이상이 있어야지만 동작한다.

그 보다 작은 인자가 있으면 이렇게 에러가 발생한다.