https://programmers.co.kr/learn/courses/30/lessons/76501
2개의 배열이 주어지는데 첫번째는 숫자, 두번째는 숫자의 부호가 주어진다. 이때 최종 값을 return해야 한다.
아래와 같이 하나의 배열의 길이만큼 반복을 돌고, 그 부호값을 if문으로 분기처리하였다.
def solution(absolutes, signs):
answer = 0
for i in range(len(absolutes)):
if signs[i]==True:
answer += absolutes[i]
else:
answer -= absolutes[i]
return answer
다른사람의 경우 zip함수를 사용하여 문제를 풀었다.
📍 zip 함수
동일한 개수로 이뤄진 자료형을 묶어주는 역할이다.
즉, 두개 이상의 자료형(list)에서 각 요소를 가져와 튜플 형태로 출력한다.
위의 문제의 경우 absolutes(=숫자배열)과 signs(=boolean배열)을 zip으로 엮을 수 있다. 이렇게 풀었을때의 코드이다.
def solution(absolutes, signs):
return sum(absolutes if sign else -absolutes for absolutes, sign in zip(absolutes, signs))
역시 알고리즘 천재..