absolute : 정수들의 절댓값을 차례대로 담은 정수 배열 absolute
signs : 정수들의 부호를 차례대로 담은 배열
문제 실제 정수들의 합을 구하여 return하도록 solution 함수를 완성해주세요.
처음에 각 배열의 for문을 돌려서 문제를 해결할 까 생각했으나, 파이썬에서는 두 배열을 한번에 돌릴 수 있는 zip이라는 함수가 있었다.
def solution(absolute, signs):
answer = 0
for sign, ab in zip(signs, absolutes):
if sign:
answer+=abs
else:
answer-=abs
return answer
문제를 푼 후에 코드를 개선 할 수 있는 부분이 있는 거 같아서 알아보자!
if문 부분을 삼항 연산자로 변경해줄 수 있을 거 같다.
def solution(absolute, signs):
answer = 0
for sign, ab in zip(signs, absolutes):
answer += abs if sign else -abs
return answer
더하기를 sum()으로 수정할 수 있을거 같다.
def solution(absolute, signs):
answer = sum(abs if sign else -abs for sign, abs in zip(signs, absolutes))
return answer
파이썬은 코드를 간단하게 만들 수 있는 요소들이 많은거같다. 6줄에서 단 1줄까지 줄이다니,
좀 더 많이 고민해 봐야겠다.! 그리고 특이한건 위에서
answer += abs if sign else -abs for sign, abs in zip(signs, absolutes)
코드는 오류가 나왓다. list comprehension 처럼 사용하고 싶었는데, 잘 안됫다 .. ;
하지만 sum은 배열안에 값들을 더해주는 함수기 때문에 위와같이 작성해도 아무 문제 없이 잘되었다. 참 신기한 요지경 재미있는 코딩세상이다!