본문 바로가기
PS/programmers

[Lv. 1] 음양 더하기(Python)

by 강렬한 스포트라이트 2023. 3. 30.

안녕하세요. 

강렬한 스포트라이트 입니다!

 

하기의 문제를 Python 언어를 사용하여 구현하고자 합니다.

 

<문제 설명>

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

 

<제한 사항>

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

 

<입출력 예>

absolutes  signs  result
[4,7,12]  [true,false,true]  9
[1,2,3] [ false,false,true]  0

 

 

1) True면 양수이므로 1을 곱하고, False면 음수이므로 -1을 곱하여 구현한 코드입니다.

 

def solution(absolutes, signs):
    for i in range(len(absolutes)):
        if signs[i]==True: # if signs[i]: -> 해당 코드도 동일함
            absolutes[i]*=1 #양수
        else:
            absolutes[i]*=-1 #음수
    return sum(absolutes)

 

 

2) zip() 함수를 이용하여 for문에서 두 리스트를 사용하여 구현한 코드입니다.

 

def solution(absolutes, signs):
    total=0
    for absolutes, sign in zip(absolutes, signs):
        if sign:
            total+=absolutes
        else:
            total+=-absolutes
    return total

 

 

 

해보시고 문의사항이 있으시면 댓글로 남겨주세요.´◡`

감사합니다!

 

 

반응형
SMALL

'PS > programmers' 카테고리의 다른 글

[Lv. 1] K번째수(Python)  (0) 2023.04.04
[Lv. 1] 모의고사(Python)  (0) 2023.03.31
[LV. 1] 숫자 문자열과 영단어(Python)  (1) 2023.03.29
[Lv. 1] 콜라츠 추측(Python)  (0) 2023.03.28
[Lv. 1] 행렬의 덧셈(Python)  (0) 2023.03.27