본문 바로가기
작업/Problem Solving

프로그래머스 코딩 테스트 (음양 더하기) - Python3

문제 링크

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

 

코딩테스트 연습 - 음양 더하기

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

programmers.co.kr

 

문제 설명

 

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

 

제한 사항

1. absolutes의 길이는 1 이상 1,000 이하입니다.

   -> absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.

 

 

2. signs의 길이는 absolutes의 길이와 같습니다.

   -> signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.

 

입출력 예시

 

1. signs가 [true,false,true] 이므로, 실제 수들의 값은 각각 4, -7, 12입니다.

   -> 따라서 세 수의 합인 9를 return 해야 합니다.

 

 

2. signs가 [false,false,true] 이므로, 실제 수들의 값은 각각 -1, -2, 3입니다.

   -> 따라서 세 수의 합인 0을 return 해야 합니다.

 


signs의 값(True, False)에 따라서 양수와 음수가 결정됩니다.

enumerate 함수를 사용하여 signs 값이 True이면 해당 인덱스(idx)의 absolutes 값을 더합니다.

반대로 False이면 값을 빼는 방식으로 코드를 작성하였습니다.

 

 

 

def solution(absolutes, signs):
    answer = 0                                                  <- answer : 계산 결과를 저장
    for idx, sign in enumerate(signs):                     <- sign : signs의 원소 값,  idx : 원소가 저장된 인덱스
        if sign == False:
            answer -= absolutes[idx]                         <- sign 값이 False면 빼기
        else:
            answer += absolutes[idx]                         <- True면 더하기
    return answer

 

- 끝 -