본문 바로가기

Algorithm/Programmers lv.1

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

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

세가지 경우의 수를 고려하여 a = b일때는 a를 반환, a < b일때는 반복문 실행, a > b일때는 a와 b를 바꿔치기 후 반복문을 실행하도록 했다. 

 

def solution(a, b):
    sum = 0
    if a == b:
        return a
    elif a < b:
        for i in range(a, b + 1):
            sum += i
        return sum
    else:
        a, b = b, a
        for i in range(a, b + 1):
            sum += i
        return sum

 

결과는 성공!!이었지만.. 별로 멋진 코드는 아닌 것 같다. 특정 테스트케이스에서는 시간이 많이 걸리기도 했다.

 

def solution(a, b):
    if a > b:
        a, b = b, a
    return sum(range(a, b + 1))

 

다른 사람의 풀이를 찾아보니 이렇게 멋진 풀이가 있었다..!

생각해보니 a > b일때만 swapping 하면 되는 문제였다 ㅋ