[코딩 테스트 연습 입문] 두 정수 사이의 합

2022. 12. 22. 11:19code/[프로그래머스] python

문제

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

 

입출력 예

 

✔풀이

def solution(a, b):
    answer = 0
    if a==b:
        answer = a
    else:
        for num in range(min(a,b),(max(a,b))+1,1):
            answer += num
    return answer

📝설명

우선 제한 사항에  두 수가 같다면 아무 값이나 리턴하라는 조건을 보고 냅다 if문을 넣었다.

그러고 나서 else로 min과 max로 작은 수와 큰 수를 구분했다.

이 때, range(start,finish,step)에서의 finish 부분은 해당 수 미만으로, finish의 숫자를 포함하지 않는데,

우리는 finish 숫자까지 포함해야 하니까!! 1을 더해주었다.

for문으로 차례대로 나오는 num을 answer에 더해주면 끝! 

개선한다면?

 

👑모범 답안

🔎 내가 max와 min을 사용했던 부분을 if문을 이용해서 a가 b보다 크다면, a를 b로, b를 a로 재정의한다.

range를 이용하여 범위를 지정하고, sum으로 결과를 도출해냈다.

 

👀느낀 점

: range를 무조건 for문과 해야 한다는 생각을 가졌던 것 같다. 우물 안 개구리였군..

for문과 함께 하지 않더라도 range를 사용할 수 있다는 걸 잊지말아야지