코딩 테스트/Python

음양 더하기

susinlee 2024. 12. 15. 18:47

[문제]

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.

 

absolutes = [4, 7, 12]

signs = [true, false, true]

 

[풀이]

이 문제는 zip함수와 리스트컴프리헨션에서 if문을 어떻게 사용하는지를 알아봅시다

zip(absolutes, signs)를 하게 되면 각 인덱스별로 요소들을 튜플로 묶어줍니다

(4, true), (7, false), (12, true)

 

이를 for문으로 가져와서 num과 sign 변수에 한번에 할당한다. 이를 언패킹이라고 한다

그리고 리스트 컴프리헨션에서 if-else문을 쓸 때는 for문 앞에 if-else을 배치한다. (if문만 쓸 때는 맨 뒤에 배치)

def solution(absolutes, signs):
    return sum(num if sign else -num for num, sign in zip(absolutes, signs))

'코딩 테스트 > Python' 카테고리의 다른 글

부족한 금액 계산하기  (0) 2024.12.15
약수의 개수와 덧셈  (0) 2024.12.15
두 정수 사이의 합  (0) 2024.12.15
약수의 합  (0) 2024.12.15
파이썬의 데이터형과 자료구조  (1) 2024.12.15