프로그래머스 level 1 음양 더하기
16 Jun 2021 | 기초 프로그래머스 TIL문제 설명
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
입출력 예
absolutes | signs | result |
---|---|---|
[4,7,12] | [true,false,true] | 9 |
[1,2,3] | [false,false,true] | 0 |
사고 과정
def solution(absolutes, signs):
return sum([signs[i] * absolutes[i] for i in zip(absolutes, signs)])
i 가 정의되지 않았다고 에러가 떠서 실행되지 않았다.
모범 답안
def solution(absolutes, signs):
answer=0
for absolute,sign in zip(absolutes,signs):
if sign:
answer+=absolute
else:
answer-=absolute
return answer
곱할 필요 없이 더하기빼기를 사용했으면 되었다.
모범 답안2
def solution(absolutes, signs):
return sum(absolutes if sign else -absolutes for absolutes, sign in zip(absolutes, signs))
나도 sign을 있는 그대로 부호로 쓰고싶었다..!
주요 포인트 및 생각해볼 점
for a,b in zip(a,b)를 다음 번에는 잘 써봐야겠다.