새소식

⌨️ Algorithms/프로그래머스

[Python] 프로그래머스 Lv1_음양 더하기

2023. 1. 1. 19:37

  • -

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

 

프로그래머스

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

programmers.co.kr

 

  • absolutes: 정수들의 절댓값을 차례대로 담은 정수 배열
  • signs: 이 정수들의 부호를 차례대로 담은 불리언 배열
  • 실제 정수들의 합을 구하여 return

제한사항

  • absolutes의 길이는 1 이상 1,000 이하
    • absolutes의 모든 수는 각각 1 이상 1,000 이하
  • signs의 길이는 absolutes의 길이와 같음
    • signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수, 그렇지 않으면 음수

 

"""
입출력 예시)

absolutes = [4,7,12], signs = [true,false,true] -> 9
absolutes = [1,2,3], signs = [false,false,true] -> 9
"""

 

 

## 의사코드 ##

# signs[i]가 false이면 
#   absolutes[i] * -1

# answer -> sum()으로 총합 구함

 

 

 

통과한 코드

 

def solution(absolutes, signs):
    for i in range(len(absolutes)):
        if signs[i] == False:
            absolutes[i] *= -1
    return sum(absolutes)

 

 

 

다른 풀이

 

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

-> signs가 True이면 absolutes 원소 그대로, signs가 False이면 absolutes 원소 * (-1)

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!