Algorithm/Programmers

[Python | Level1] 음양 더하기

dotz0ver 2024. 4. 7. 22:34

https://school.programmers.co.kr/learn/courses/30/lessons/76501

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명

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


제한 사항

  • absolutes의 길이는 1 이상 1,000 이하입니다.
    • absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
  • signs의 길이는 absolutes의 길이와 같습니다.
    • signs[i]가 참이면 absolutes[i]의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.

문제 풀이

if signs[i]:는 signs[i]가 참인지 거짓인지를 검사하고, 참일 경우에는 answer에 absolutes[i]를 더해준다. 만약 signs[i]가 거짓(False)이라면 answer에서 absolutes[i]를 빼준다. 즉, signs 리스트의 각 요소가 True 또는 False로 주어진 것으로 보아, 해당 인덱스의 absolutes 값이 더해지거나 빼지는 것을 제어하는 것이다.

def solution(absolutes, signs):
    answer = 0
    n = len(absolutes)
    for i in range(n):
        if signs[i]:
            answer += absolutes[i]
        else:
            answer -= absolutes[i]
    return answer