티스토리 뷰

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

입출력 예

a b return
3 5 12
3 3 3
5 3 12

 

2. 풀이 과정

def solution(a, b):
    return sum(range(b, a+1)) if a > b else sum(range(a, b+1))
  • 나와 비슷한 풀이에 달린 댓글

    : a,b가 같은 숫자일 경우도 같이 처리 해주셨으면 다른 케이스에서도 속도가 올라갔을거예요

그렇다. 같은 경우를 처리하지 않았다ㅠ

 

3. 다른 사람의 풀이

def adder(a, b):
    return sum(range(min(a,b),max(a,b)+1))

굳이 a, b 의 대소 관계에 따라 분기하지 않아도 위와 같이 풀면 더 깔끔하게 풀 수 있었다.

 

두 가지 다 아는 함수인데...아쉽다...

'Algorithm > Programmers' 카테고리의 다른 글

모의고사  (0) 2020.03.16
2016년  (0) 2020.02.14
약수의 합  (0) 2020.02.08
문자열을 정수로 바꾸기  (0) 2020.02.08
서울에서 김서방 찾기  (0) 2020.02.04
댓글