[프로그래머스] 음양 더하기 - LV.1

지히·2022년 6월 29일
0

알고리즘

목록 보기
1/8

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

문제 설명

2개의 배열이 주어지는데 첫번째는 숫자, 두번째는 숫자의 부호가 주어진다. 이때 최종 값을 return해야 한다.


코드풀이

아래와 같이 하나의 배열의 길이만큼 반복을 돌고, 그 부호값을 if문으로 분기처리하였다.

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

다른사람의 풀이

다른사람의 경우 zip함수를 사용하여 문제를 풀었다.

📍 zip 함수
동일한 개수로 이뤄진 자료형을 묶어주는 역할이다.
즉, 두개 이상의 자료형(list)에서 각 요소를 가져와 튜플 형태로 출력한다.

위의 문제의 경우 absolutes(=숫자배열)과 signs(=boolean배열)을 zip으로 엮을 수 있다. 이렇게 풀었을때의 코드이다.

def solution(absolutes, signs):
    return sum(absolutes if sign else -absolutes for absolutes, sign in zip(absolutes, signs))
profile
알고리즘 천재가 될꺼야:)

1개의 댓글

comment-user-thumbnail
2022년 6월 30일

역시 알고리즘 천재..

답글 달기