[프로그래머스] 두 정수 사이의 합

김서연·2024년 2월 9일

코딩테스트

목록 보기
6/31
post-thumbnail

📜문제 설명

문제 바로가기

두 정수 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의 대소관계는 정해져있지 않습니다.

📍입출력 예시

abreturn
3512
333
5312

📄문제 해결

📝내가 푼 코드

## 등차수열의 합 공식 활용

def solution(a, b):
    # a > b일 경우
    if a > b: a, b = b, a
    return (b-a+1)*(a+b)//2

## sum() 활용

def solution(a, b):
    # a > b일 경우
    if a > b: a, b = b, a
    return sum(range(a, b+1))

간단한 문제였던 만큼 두 가지 방법을 생각했다. 비용이 많이 들지 않는 것은 아무래도 합 공식을 활용한 경우일 것이다.

📑다른 사람들의 풀이

def adder(a, b):
    return (abs(a-b)+1)*(a+b)//2

수열의 합 공식을 사용했다는 점에서 나와 거의 유사하지만, abs() 절댓값 함수를 사용해 줌으로써 a와 b 사이의 대소관계에 크게 신경쓰지 않아도 되는 코드이다.


🤔느낀점

수학적으로 접근해본 것은 좋았으나, 다른 사람들의 풀이 코드처럼 if문을 통해 a, b를 바꿔주는 것보다 한 단계 나아가 수식에서 해결할 수 있는 방법을 생각해보았다면 더욱 좋았을 것 같다.

profile
가보자고! 🔥

0개의 댓글