22번 - 두 정수 사이의 합
문제 설명
두 정수 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의 대소관계는 정해져있지 않습니다.
입출력 예
a | b | return |
3 | 5 | 12 |
3 | 3 | 3 |
5 | 3 | 12 |
<나의 풀이>
def solution(a, b):
answer = 0
if a == b:
answer = a
elif a > b:
for i in range(b, a+1):
answer += i
else:
for i in range(a, b+1):
answer += i
return answer
- 매개 변수로 받은 두 정수 a와 b가 같다면 if(a == b)
- a가 답으로 나온다 answer = a
- 아니면 두 정수 a와 b를 비교하여 b가 더 크면 elif (a < b)
- a와 b 사이에 속한 모든 정수의 합을 구한다. for i in range(a, b + 1): answer += i
- 반면에 a가 b보다 같거나 크면 else
- b와 a 사이에 속한 모든 정수의 합을 구한다. for i in range(b, a + 1): answer += i
<다른 사람 풀이>
def adder(a, b):
return sum(range(min(a, b), max(a, b)+1))
print( adder(3, 5))
이렇게 간단한 풀이도 있었다 .. ㅎㅎ 이 분은 최소값과 최대값을 이용해서 풀이를 하셨는데 나는 전혀 생각 못한 방법이랑 약간 충격이었다
파이썬은 정말 한줄로 간단하게 끝낼 수 있는 것 같다. 좀 더 기초를 다져보는걸로
쉽지 않은 파이썬 풀다보면 드는 생각인데 내가 좀 더 꼬아서 계속 생각하는 것 같다. 좀 더 쉽게 생각하면 답이 금방 나오고 문제에서 답이 있는데 코드를 적어야 한다는 생각에 뭔가 이렇지 않을까 이만큼 쉽지 않을꺼야라고 생각해서 더 그런 것 같다 ㅠㅠ
아직 코드카타를 따라 잡으려면 멀었지만 좀 더 노력해보자 !! 난 하나라도 푼거에 만족 😂😂😂
'CODEKATA' 카테고리의 다른 글
[MySQL] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2024.07.17 |
---|---|
[Python] 콜라츠 추측 (0) | 2024.07.16 |
Python codekata 21번 - 하샤드 수 (0) | 2024.07.12 |
Python codekata 20번 - 정수 내림차순으로 배치하기 (2) | 2024.07.10 |
Python CODEKATA 17번, 18번 (0) | 2024.07.09 |