2021. 9. 24. 22:50ㆍAlgorithm
이것이 문제
두 정수 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의 대소관계는 정해져있지 않습니다.
내가 작성한 답^^!
def solution(a, b):
if a==b:
answer=a
else:
numlist=[a,b]
larger=max(numlist)
smaller=min(numlist)
if 0 in numlist:
numlist.remove(0)
nozerolist=numlist[0]
if nozerolist>0:
answer=(nozerolist)*(nozerolist+1)/2
elif nozerolist<0:
answer=-((nozerolist)*(nozerolist-1)/2)
elif (larger*smaller)>0:
if larger>0: #전체양수
smaller=smaller-1
answer=(larger)*(larger+1)/2 -((smaller)*(smaller+1)/2)
elif larger<0: #전체음수
larger=larger+1
answer=-((smaller)*(smaller-1)/2 -((larger)*(larger-1)/2))
else: #음수양수 섞인경우
answer=((larger)*(larger+1)/2) -((smaller)*(smaller-1)/2)
return int(answer)
참.... 너무너무 간단한 문제였는데...... 눈물이난다.............
채현아... 베베꼬아서 생각하지않기.... 세상에는 쉬운 코딩문제도 있다는거..........
채현아.... for 문을 사용해도 된다..... 시간복잡도....그거 너무 고려해주지마라.......이중반복문이 쉽지않은거지 한번은 써도된다...................
채현아... 하루에 한문제씩은 풀자.... 까먹겠다.....
아자아자!
다른사람들이 푼 답은 한줄짜리였다. 어이가없었다 ............
def solution(a,b):
a,b if a>b else b,a #더큰값이 a에 저장됨
return sum(range(b,a+1))
print(solution(3,2))
이런식으로....휴우... 아니근데 이거 내가 다시 짜본 코든데 내꺼는 양수음수 둘 중 하나에서만 제대로된 값이 나오는데 밑에꺼랑 똑같은데 왜 내꺼만 안되냐 왜 왜왜 왜
다시 생각해보니까 내가 바보다 a,b를 서로 바꿔서 대입해주는 식이 없다....
밑에꺼를 참고하면 a,b=b,a가 없는거....
def solution(a, b):
# 함수를 완성하세요
if a > b: a, b = b, a
return sum(range(a,b+1))
print( solution(-3, -5))
그리고 왜 range에 a가 먼저들어가냐 작은수 먼저들어가야되는거 아니야? ㅠㅠ
if : = 이거,,,, 삼항연산자인줄 알았는데.. 그냥 if문이였다. ^^!
def solution(a, b):
return sum(range(min(a,b),max(a,b)+1))
최강자를 만났다...... if 문조차 필요없는........ 진짜 어쩜 이렇게 생각하지 별다줄이야증말
삼항연산자 알아보기!
result = (a > b) ? a : b
=> ?앞 조건이 true이면 :앞이 result, 아니라면 :뒤가 result
result = a if a>b else b
=> if else문을 짧게 쓰는 방법이다. a가 result다 if문이 true이면 false이면 result가 b
'Algorithm' 카테고리의 다른 글
| [프로그래머스] 점프와 순간 이동 (0) | 2023.02.20 |
|---|---|
| [프로그래머스] N개의 최소공배수 (0) | 2023.02.20 |
| JavaScript의 match함수 (0) | 2023.02.13 |
| [프로그래머스] 게임 맵 최단거리 (0) | 2023.02.12 |
| [프로그래머스]시저암호 (0) | 2021.09.15 |