어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
def solution(absolutes, signs): # for문과 if문을 사용했다 가장 빠르고 가독성이 좋다
sum = 0
for i in range(len(signs)):
if signs[i]: # signs[i] 값 자체가 True다
sum += absolutes[i]
else:
sum -= absolutes[i]
return sum
def solution(absolutes, signs): # 위의 것을 줄임
return sum(absolutes[i] if signs[i] else -absolutes[i] for i in range(len(signs)))
def solution(absolutes, signs): # 다 더하고 false인 부분을 빼주는 방식
sum = 0
for i in range(len(signs)):
sum += absolutes[i]
if not(signs[i]):
sum -= absolutes[i]*2
return sum
def solution(absolutes, signs): # signs값에 따라서 -1을 곱할지 말지 결정
answer = 0
for i,bools in enumerate(signs):
n = 1
if not(bools):
n = -1
answer += absolutes[i] * n
return answer
def solution(absolutes, signs):# 위의 것을 줄임
answer = 0
for i,bools in enumerate(signs):
answer += absolutes[i] if bools else -absolutes[i]
return answer
def solution(absolutes, signs):# 위의 것을 줄임
return sum(absolutes[i] if bools else -absolutes[i] for i,bools in enumerate(signs))
from functools import reduce #reduce와 zip을 사용해서 조건에 맞게 더할지 뺄지 정함 *가장 느림*
def solution(absolutes, signs):
return reduce(lambda x,y: x + y[0] if y[1] else x - y[0] ,zip(absolutes,signs),0)
출처: https://programmers.co.kr/learn/courses/30/lessons/76501
'2021 파이썬 챌린지' 카테고리의 다른 글
2021.07.02 2일차 문제 예시답안 (0) | 2021.07.03 |
---|---|
2021.07.02 2일차 문제 (0) | 2021.07.02 |
2021.07.01 1일차 문제 예시답안 (0) | 2021.07.02 |
2021.07.01 1일차 문제 (0) | 2021.07.01 |
실력테스트 1. 짝수와 홀수 (0) | 2021.06.26 |