NIRVANA

[level 1] 음양 더하기 본문

Coding test(Python3)/Programmers

[level 1] 음양 더하기

녜잉 2023. 7. 11. 01:07

문제

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

 

 

문제 풀이 접근법1

1) 반복문을 돌면서 absolutes의 원소 중 signs이 false인 수를 음수로 바꾸어준다.

2) sum함수로 absolutes의 각 원소를 더한 뒤 값을 반환한다.

def solution(absolutes, signs):
    answer = 123456789
    for i in range(len(absolutes)):
        if signs[i] == False:
            absolutes[i] = 0 - absolutes[i]

    answer = sum(absolutes)
    return answer

 


다른 분들 풀이

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

zip함수 사용을 왜 생각 못했지? 

그리고 sign이 true일 때와  false일 때 answer를 더하고 빼는 걸로 나누어서 푸는 것도 좋은 방법인 것 같다!

 

zip함수: https://chancoding.tistory.com/144

 

[파이썬] zip 내장함수 - 묶어서 데이터 가져오기

zip함수를 사용하면 여러 그룹의 데이터를 묶어서 출력해줄 수 있습니다. zip 함수 zip()함수는 iterable 객체를 인자로 받아서 사용합니다. 여러 개의 iterable객체를 받은 후 자료형 들을 묶어서 튜플

chancoding.tistory.com