NIRVANA
[level 1] 두 정수 사이의 합 본문
문제
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
문제 풀이 접근법1
1) 정수 a, b를 비교하여 둘 중 작은 것을 반복문의 시작값으로, 큰 것을 끝값으로 둔다
2) 반복문을 진행하면서 answer 두 수 사이의 값을 더한다
def solution(a, b):
answer = 0
if a > b:
for i in range(b, a+1):
answer = answer + i
else:
for i in range(a, b+1):
answer = answer + i
return answer
다른 분들 풀이
def adder(a, b):
if a > b:
a, b = b, a
return sum(range(a, b + 1))
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( adder(3, 5))
와 이거 진짜 너무 좋은 풀이인 것 같다!
그리고 sum함수를 이렇게 사용할 수 있는 것도 처음 알았다.
다음 번에 이렇게 한 번 사용해 봐야지
def adder(a, b):
return (abs(a-b)+1)*(a+b)//2
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( adder(3, 5))
수학 공식을 사용한 것도 인상깊었다.
반복문을 사용하지 않으니까 복잡도 측면에서 최고의 코드인듯!
'Coding test(Python3) > Programmers' 카테고리의 다른 글
[level 1] 서울에서 김서방 찾기 (1) | 2023.07.11 |
---|---|
[level 1] 콜라츠 추측 (0) | 2023.07.10 |
[level 1] 하샤드 수 (0) | 2023.07.09 |
[level 1] 정수 내림차순으로 배치하기 (0) | 2023.07.09 |
[level 1] 문자열을 정수로 바꾸기 (0) | 2023.07.07 |