티스토리 뷰

728x90
반응형

 

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

 

 


 

 

<나의 풀이>

def solution(a, b):
    answer = 0
    min_num = min(a,b)
    max_num = max(a,b)+1
    
    # answer = sum(range(min_num,max_num))로 대체 가능
    for i in range(min_num, max_num) :
        answer += i
    return answer

 

시간이 정말 오래 걸린 코드🤔

시간 제한이 있었다면 통과하지 못했을 것 같다.

 

 

<다른 사람의 풀이>

def adder(a, b):
    # 함수를 완성하세요
    if a > b: a, b = b, a

    return sum(range(a,b+1))

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( adder(3, 5))


# <배운점> 
# => 내장함수를 이용하면 확실히 시간을 더 단축시킬 수 있다는 것

 

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

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( adder(3, 5))



# <배운점> 
# => 절댓값을 구해주는 내장함수를 이용해 구할 수 있다는 점
728x90
반응형
댓글