def solution(angle):
if 0 < angle < 90:
return 1
elif angle == 90:
return 2
elif 90 < angle < 180:
return 3
elif angle == 180:
return 4
0 < angle < 90:인 경우부터 생각했고, elif로 이어서 적었다.
def solution(n):
empty_list=[]
for i in range(0, n+1, 2):
empty_list.append(i)
add_num = 0
for num in empty_list:
add_num += num
return add_num
각 요소를 더한다는 생각에 리스트부터 떠올렸다.
(n이 정수로 주어진다는 가정하에)
인자는 n 하나밖에 없으므로 이걸로 리스트를 만들어야했다.
range로 접근했지만, 막연한 개념뿐이라서 몇 번 테스트했다.
처음에는 range(n)으로 시도했다.
순조롭게 콜론:부터 빼먹었다.
SyntaxError: invalid syntax
리스트에 n-1까지만 채워져서 n+1을 인자로 넣었다.
그리고 range 문법을 내맘대로 적용해서 빈 리스트를 반환하기도 했다.
for i in range(n,1):
지금 보면 빈 리스트를 반환하는 것도 용하다.
간단하게 테스트로 인자를 돌려보다가 의도치않게 start, stop, step에 값이 알맞게 들어갔다.
for i in range(0, n+1, 2):
리스트의 수를 다 더하는 것은 그동안 주구장창 해왔던 가장 큰 수를 구하는 방법에서 돌려막았다.
프로그래머스의 다른 제출물을 보니 내 시야가 많이 좁다고 느꼈다.
def solution(angle):
answer = (angle // 90) * 2 + (angle % 90 > 0) * 1
return answer
이 풀이는 내 단계에서 적용하려면 시간이 오래 걸린다.
우선 1,2,3,4를 반환한다는 구조에서 착안한 직관을 이용한 것 같은데,
try error를 반복해서 푸는 내 방식과 많이 다른 길이다.
def solution(angle):
if angle<=90:
return 1 if angle<90 else 2
else:
return 3 if angle<180 else 4
깔끔해보이지만, 고치려면 다 지울 것 같다.
def solution(angle):
angles = {180: 4, 91: 3, 90: 2, 0: 1}
for base, result in angles.items():
if angle >= base:
return result
굉장히 깔끔하다. dictionary의 접근이 신선하고, .items()를 이용한 풀이가 맛있다.
def solution(n):
return sum([i for i in range(2, n + 1, 2)])
n = 0인 경우에 에러가 걱정되는 코드다.
하지만 실제 출력 시 0이 나온다.
다뤄보면 맛있는 코드다.
def hap(n):
result = 0
for i in range(0, n, 2):
result += i
print(result)
정우 팀장님이 리뷰해주신 코드다.
간단한 스니펫으로 외우면 좋을 것 같다.