def solution(dot):
if dot[0] >0 and dot[1] > 0:
return 1
elif dot[0] < 0 and dot[1] >0:
return 2
elif dot[0] <0 and dot[1] < 0:
return 3
elif dot[0] > 0 and dot[1] <0:
return 4
def solution(dot):
a, b = 1, 0
if dot[0]*dot[1] > 0:
b = 1
if dot[1] < 0:
a = 2
return 2*a-b
def solution(dot):
quad = [(3,2),(4,1)]
return quad[dot[0] > 0][dot[1] > 0]
def solution(dot):
x,y = dot
if x*y>0:
return 1 if x>0 else 3
else:
return 4 if x>0 else 2
이런 생각을 할 수 있다니... 정말 난 간단히 if, elif, else로 나눠서 했는데, 저런 생각을 할 수 있다니 놀랍다.
맨 처음 코드의 경우 어떻게 저런 생각을 할 수 있는지 궁금하다.
두 번째 코드의 경우, 만약, dot[0]과 dot[1]이 모두 0보다 큰 양수라면, quad[1][1] -> 1이 출력되고, dot[0]은 양수, dot[1]은 음수라면, quad[1][0] -> 4가 출력된다.
세 가지 모두 코드 모두, 우선 첫 번째 조건으로 dot[0] * dot[1]이 양수인지 음수인지 따라서 return값이 나눠질 수 있도록 하였다. 즉, 세세하게 하나하나 if, elif 로 나누지 말고 큰 조건으로 우선 2그룹으로 나누고, 그 안에서 두 가지 답으로 나누는 방식이다.