Yeonnnnny

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

코딩테스트

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

yeonny_do 2025. 3. 5. 11:05

 

✅ 문제

https://school.programmers.co.kr/learn/courses/30/lessons/12912

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

✅나의 풀이

  • a와 b가 같은 경우 a 반환
  • a와 b가 1차이나는 경우, a+b 반환
  • a와 b의 합이 짝수인 경우
    • ex) a = 1, b= 5 => 1,2,3,4,5   mid = 6//2=3
    • mid+ (a+b)*abs(b-mid) = 3 + 6*2 = 3+12 = 15
  • a와 b의 합이 홀수인 경우
    • ex) a = 100, b = 1 => 100, 99, 98, ..., 3, 2, 1  mid = 101//2 = 50
    • mid*(a+b) = 50*101 = 5050
def solution(a, b):
    answer = 0
    
    if a == b :
        return a
    
    if abs(a-b) == 1:
        return a+b
    
    mid = (a+b)//2
    
    if (a+b) % 2 == 0:
        answer = mid + ((a+b) * abs(a-mid))
    else :
        answer = (a+b) * mid    
        
            
    return answer

 

실패...⚠️

 

 

✅ 다른 사람의 풀이

 

  • 등차수열 이용
def solution(a, b):       
    return ((a+b)*(abs(a-b)+1))/2

 

 

  • range 함수 이용
def solution(a, b):  
    if a > b:
        a, b = b, a
    return sum(range(a, b+1))