본문 바로가기

Python 연습문제

두 정수 사이의 합

이 문제 해결 하는데 시간이 좀 오래 걸렸어서 포스팅으로 남깁니다.

 

 

일단 전체적으로 생각 하려니까 너무 복잡해서 차근차근 생각해 봤습니다.

 

그냥 a랑 b는 각각 3, 5 로 결정 되어 있다고 가정 했을때

 

처음에 3이란 숫자가 오고 그 후에 +1 된 4를 더해야 되고 그 다음에 +1된 5를 더해야 되는 상황

 

for를 쓸까 while을 쓸까 고민하다가, while이 접근 하기 가능하겠다고 결정

 

def solution(a, b):
    answer = a
    while True:
         answer = answer + (a + 1)
         a = a + 1
         if a + 1 == b + 1:
            break
    return answer

 

작은 숫자가 a라고 픽스하고 코드를 짯고 더해지는 숫자가 가장큰값보다 1 크면 멈추게끔 함

 

그럼 이제 여기서 내가 고민할꺼는 둘중 작은숫자와 큰 숫자를 셋팅 하는것

 

list_c=[a,b]

이것을 활용해 리스트로 만든수

 

a=min(list_c)
b=max(list_c)

 

큰값 작은 값을 정해줌

 

def solution(a, b):
    list_c = [a, b]
    a = min(list_c)
    b = max(list_c)
    answer = a
    while True:
        answer = answer + (a + 1)
        a = a + 1
        if a + 1 == b + 1:
            break
    return answer

 

그 다음에 a, b가 같을수도 있으니까 같으면 둘중 값 하나로 리턴하고 아닌경우에 위에 작성한 구문 돌아가게 셋팅

 

def solution(a, b):
    if a==b:
        return a
    else:
        list_c=[a,b]
        a=min(list_c)
        b=max(list_c)
        answer = a
        while True:
            answer=answer+(a+1)
            a=a+1
            if a+1==b+1:
                break
        return answer

 

그 결과

 

print(solution(3,5))
print(solution(3,3))
print(solution(5,3))