얼렁뚱땅 스며드는 Data Science

Algorithm/Daily Coding Tests Challenge

[프로그래머스 코딩테스트] lv1. 음양 더하기

Jesip14 2021. 7. 29. 23:07

문제 설명

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

 

나의 풀이

def solution(absolutes, signs):
    sign = list(map((lambda x: 1 if x else -1), signs))
    return sum([a*b for a, b in zip(absolutes, sign)])

이전 코딩테스트를 풀면서 잘 사용하지 않았었던 zip(), map(), lambda 함수를 이용해 문제를 풀이해보았다. 이는 코드 한 줄로 더 간단히 구현할 수 있다.

# 다른 사람의 풀이
def solution(absolutes, signs):
    return sum(absolutes if sign else -1 * absolutes for absolutes, sign in zip(absolutes, signs))

 

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/76501