두 정수 사이의 합
by Cori문제
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b= 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
제한 조건
· a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
· a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
· a와 b의 대소관계는 정해져 있지 않습니다.
입출력 예
a | b | return |
3 | 5 | 12 |
3 | 3 | 3 |
5 | 3 | 12 |
풀이
1. Me
def solution(a, b):
answer = 0
if a > b:
for i in range(b, a + 1):
answer += i
else:
for i in range(a, b + 1):
answer += i
return answer
a와 b를 비교하여 a가 b보다 큰 경우, a가 b보다 작은 경우를 구하여 범위 내 정수의 합을 구하였다.
2. Others
def adder(a, b):
if a > b: a, b = b, a
return sum(range(a,b+1))
a와 b를 비교하여 a가 b보다 큰 경우 a와 b를 swap.. sum 연산자를 활용하여 범위 내 정수의 합을 구하였다. 왜 sum 연산자를 생각 못 했을까 ..
def adder(a, b):
return (abs(a-b)+1)*(a+b)//2
엄청난 코드를 하나 발견해서 추가로 가져왔다. 두 정수 사이의 합을 구하는 수학 공식 = n * (n+1) / 2 를 구현한 것으로, 두 수 사이의 정수 개수를 구하기 위해 절대값 함수 (abs)를 이용하였다.
해당 코드로 코드 돌릴 경우 시간복잡도 O(1), 코드 수행 시간 0.00ms !!
'CS > Coding Test' 카테고리의 다른 글
같은 숫자는 싫어 (0) | 2021.08.22 |
---|---|
나누어 떨어지는 숫자 배열 (0) | 2021.08.22 |
문자열 내 p와 y의 개수 (0) | 2021.08.21 |
문자열 다루기 기본 (0) | 2021.08.21 |
서울에서 김서방 찾기 (0) | 2021.08.21 |
블로그의 정보
코딩하는 오리
Cori