python/알고리즘 문제풀이

[프로그래머스 | 파이썬3] 음양더하기_ 기본연산식, sum함수 사용

빛날희- 2021. 5. 15. 15:45

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

 

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

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

programmers.co.kr

 

반복문과 기본 연산식만으로 간단하게 풀 수 있던 문제였다. 


1. 첫번째 답안

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

 

2. 두번째 답안

 

다른 유저들의 풀이를 보고 sum함수와 generator expression을 함께 쓸 수 있다는 것을 처음 알았다.

sum함수의 파라미터로 generator expression을 넣고 해당 generator가 True를 반환하면 그 요소를 sum의 요소로 받아 덧셈 연산을 해주고 False를 반환하면 덧셈연 산을 해주지 않는 방식이다. 

 

해당 방법으로 이 문제를 다시 풀어보았다. 

def solution(absolutes, signs):
    return sum(absolutes[i] if signs[i] else -absolutes[i] for i in range(len(absolutes)))

* 만일 i번째 signs가 True면 absolutes의 i번째 요소를 더해주고 False이면 absolutes의 i번째 요소를 빼주고 모든 연산이 끝나면 결과를 반환해준다.