루나의 TIL 기술 블로그

프로그래머스 level 1 음양 더하기

|

음양 더하기

문제 설명

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 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)를 다음 번에는 잘 써봐야겠다.