[프로그래머스][LV.1] 두 정수 사이의 합 | python3
2025. 1. 16. 11:09ㆍ프로그래머스/LV.1
문제 링크: 두 정수 사이의 합
문제 설명
문제 설명
두 정수 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의 대소관계는 정해져있지 않습니다.
문제 풀이
처음에는 sum(n for n in range(a,b+1)) 이렇게 풀었는데 항상 a<b 가 아니였다.
그래서 if문으로 조건을 나누어서 풀었다.
내코드
def solution(a, b):
if a<=b:
answer = sum(n for n in range(a,b+1))
else:
answer = sum(n for n in range(b,a+1))
return answer
더보기
다른사람풀이
def adder(a, b):
if a > b:
a, b = b, a
return sum(range(a, b + 1))
굳이 for문을 쓸 필요도 없고... if 문으로 a>b일때 서로를 바꾸어서 저장해서 계산을 하다니...
def adder(a, b):
return (abs(a-b)+1)*(a+b)//2
수열공식 (n-1)n/2 를 이용하여 푼 풀이라고 한다..
등차수열의 합 공식
시간복잡도가 'O(1)' 라고 한다....
이래서 수학공부를 하는 구나..
def adder(a, b):
return sum(range(min(a, b), max(a, b)+1))
min max로 하는 방법도 있음
'프로그래머스 > LV.1' 카테고리의 다른 글
[프로그래머스][LV.1] 정수 제곱근 판별 | python3 (0) | 2025.01.16 |
---|---|
[프로그래머스][LV.1] 자연수 뒤집어 배열로 만들기 | python3 (0) | 2025.01.16 |
[프로그래머스][LV.1] 나누어 떨어지는 숫자 배열 | python3 (0) | 2025.01.16 |
[프로그래머스][LV.1] 문자열 내 p와 y의 개수 | python3 (0) | 2025.01.15 |
[프로그래머스][LV.1] 나머지가 1이 되는 수 찾기 | python3 (0) | 2025.01.15 |