내답안
처음에 print (1) 이렇게 넣었었는데, 결과값은 맞지만 오류가 났다. 웹에서 검색해보니 파이썬은 아니지만 return으로 푸신분이 계셔서 그렇게 해봤더니 맞다고 나왔다.
다른분 답안
if angle<=90: # 각이 90이하이면
return 1 if angle<90 else 2 # 1을 리턴, 각이 90 미만이면, 아니면 2를 리턴.
else : # 각이 90 초과이면
return 3 if angle<180 else 4 # 3을 리턴, 둔각이면, 아니면 4를 리턴
이 코드가 제일 깔끔해보인다.
사실 길이 4갈래로 나누어지는 문제였는데,
먼저 2갈래로 나누어서 표현식을 쓰니 코드가 엄청 짧아졌다.
각이 90을 기준으로 나뉜다는 사실로 첫번째 갈림길을 결정하고,
그 안에서 부동호로 또다시 길을 나누면서,
사실 90도나 180도와 같을때의 리턴값을 위해 일반적으로 썼어야할 = 기호는 한번도 쓰지 않았다.
분기점을 잡아내는 발상이 대단한 것 같다.
필사하기
def solution(angle):
if angle <=90:
return 1 if angle <90 else 2
else :
return 3 if angle<180 else 4
또다른분은 정말 고수다
어차피 예각은 // 때리면 0이고, 90도는 1, 둔각도 1, 180도는 2가 나온다.
문제는 90도일때와 둔각일때가 똑같이 1이라는 사실인데,
이것을 나누고난 나머지, 즉 % 가 0보다 큰지의 여부로 그 값의 * 1을 했다.
90도는 당연 0이니 0*1이 되고, 둔각은 1*1, 180도는 2*1이 되어 가중치가 가산될 것이다.
멋짐..
'Study (Data Science) > Python' 카테고리의 다른 글
조별학습) 구구단 만들기 (0) | 2022.11.28 |
---|---|
참고) 함수에 대하여. (0) | 2022.11.28 |
프로그래머스) 나이 출력 (0) | 2022.11.27 |
프로그래머스) 몫 구하기 (클래스문법 업데이트하기) (0) | 2022.11.27 |
프로그래머스) 나머지 구하기 (0) | 2022.11.27 |
댓글