본문 바로가기
알고리즘-python/Programmers 문제

[프로그래머스 / 1단계 / 파이썬(Python3)] 두 정수 사이의 합

by 빅데이터1020 2020. 7. 1.
SMALL

문제 출처 https://programmers.co.kr/learn/courses/30/lessons/12912

 

코딩테스트 연습 - 두 정수 사이의 합

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우

programmers.co.kr

 

문제 설명

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

 

 

● 어떻게 풀까?

1. 가우스의 덧셈법칙 사용하기

   두 수 중 큰 수를 a로 놓고 가우스의 덧셈법칙을 활용한다

2. 계산 기억하기 방법

https://data-analysis-expertise.tistory.com/18

 

[알고리즘] 1부터 n까지 연속한 숫자의 합

출처: 모두의 알고리즘 알고리즘을 공부하면서 [모두의 알고리즘]의 문제를 풀고, 그 성장과정을 기록하는 목적으로 작성되었습니다. ※ 예시문제 - 1부터 n까지 연속한 숫자의 합 구하기 ● 해��

data-analysis-expertise.tistory.com

 

 

● 나의 풀이 - 1. 가우스의 합 공식

def solution(a, b):
	if b>a:
	  tmp = a
	  a = b
	  b = tmp
	  anwser = (a+b)*(a-b+1)/2
    return answer

 

 

● 나의 풀이 - 2. 계산 기억하기

def solution(a, b):
    answer = 0
    if b>a:
        tmp = a
        a = b
        b = tmp
    for i in range(b, a+1):
        answer = answer+i
    return answer

 

LIST