반응형
안녕하세요~
27년차 진로탐색꾼 조녁입니다!!
1일 1코테 3일차!!!
· 문제명 : 두 정수 사이의 합
· 사용 언어 : Python3
· 난이도 : Level1
· 문제 설명
두 정수 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 |
오답 코드
: 18점/100점 , 한쪽 range 함수는 음수 반영 안된다.
def solution(a, b):
if a == b :
return a
else:
if a > b :
answer = sum(set([i for i in range(a+1)])-set([i for i in range(b)]))
return answer
else:
answer = sum(set([i for i in range(b+1)])-set([i for i in range(a)]))
return answer
#음수 커버 안된다.
정답 코드
: a,b 대소 비교가 안되는 형태이므로, 대소비교부터 해준다. range 양쪽에 숫자사용해준다.
def solution(a, b):
if a < b :
return sum(range(a, b + 1))
else:
return sum(range(b, a + 1))
숏코딩
: 두 가지 경우 a,b의 순서만 바뀌므로, 애초에 한 가지 경우(a >b)를 정해서 순서를 a,b = b,a로 바꿔준다.
그러면 모든 경우에서 sum(range(a,b+1))로 표현할 수 있다.
def solution(a, b):
if a > b:
a, b = b, a
return sum(range(a,b+1))
반응형
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 같은 숫자는 싫어 (0) | 2021.03.10 |
---|---|
[프로그래머스] 크레인 인형뽑기 게임 (0) | 2021.03.09 |
[프로그래머스] 가운데 글자 가져오기 (0) | 2021.03.08 |
[프로그래머스] 완주하지 못한 선수 (0) | 2021.03.06 |
[프로그래머스] 뉴스 클러스터링 (0) | 2020.12.28 |