[문제]
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 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 |