[코테]음양 더하기

HOU·2022년 5월 20일
0

코딩테스트

목록 보기
2/24
post-thumbnail

오늘의 문제 음양 더하기

문제 링크

문제 설명

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은 배열안에 값들을 더해주는 함수기 때문에 위와같이 작성해도 아무 문제 없이 잘되었다. 참 신기한 요지경 재미있는 코딩세상이다!

profile
하루 한 걸음 성장하는 개발자

0개의 댓글