x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.
x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.
x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.
x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.
좌표가 속하는 사분면을 return (1사분면이면 1...)
answer = 1 if dot[1] > 0 else answer = 4
이렇게 치니 SyntaxError: cannot assign to conditional expression
오류가 발생했다.
검색해보니 문법적인 문제였다.
answer = 1 if dot[1] > 0 else 4
같은 변수면 answer =
이걸 붙여줄 필요가 없다.
def solution(dot):
if dot[0] > 0:
answer = 1 if dot[1] > 0 else 4
if dot[0] < 0:
answer = 2 if dot[1] > 0 else 3
return answer
if문으로 첫번째 분기를 나누고, 그 다음 또 if 문으로 한 번 더 분기를 나눠주는 식이다.
def solution(dot):
quad = [(3,2),(4,1)]
return quad[dot[0] > 0][dot[1] > 0]
우선 답이 될 숫자들을 튜플로 두 개씩 묶고, 두 개의 튜플을 다시 리스트로 묶어줬다.
그런 뒤 리스트 안의 요소들의 값을 비교해 해당하는 경우의 답안 값을 return 해주는 방식이다.
리스트와 딕셔너리는 정말 잘만 활용하면 깔끔하고 직관적으로 코드를 짤 수 있는 효자같은 녀석이란 생각이 든다.
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성하기
def solution(my_string):
answer = []
for value in list(my_string):
if value.isdigit() == True:
answer.append(int(value))
else:
continue
return sorted(answer)
.isdigit()
사용).append
, 아니면 continue
def solution(my_string):
return sorted([int(c) for c in my_string if c.isdigit()])
충격 받은 것,
문자열도 for문이 돌아간다!!
그러니까 애초에 list(my_string)
으로 문자열을 리스트 치환 할 필요가 없었음...
역시 내가 문제를 푸는 거에서 끝날 게 아니라 남의 코드를 보면서 와 이런식으로도 하는구나.. 하고 배우고 한 번 더 익히는 과정이 중요하다 생각된다.