본문 바로가기

Algorithm/Programmers lv.1

[프로그래머스] 음양 더하기(zip함수)

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

 

프로그래머스

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

programmers.co.kr

 

단순 반복문과 조건문으로 구현했다. 조건문은 삼항연산자로 작성하여 최대한 코드의 간결성을 유지했다.

 

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

 

 

다른사람들의 풀이도 몇가지 가져와봤다.

우선 대부분의 사람들은 다음과 같이 풀이했다.

 

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

 

zip함수라는걸 옛날에 써본 적은 있었는데 오랜만에 코딩테스트 준비를 하다보니 잊고 있었다. zip함수에 대한 설명은 다음의 게시글에서 확인하자. 

 

https://vegetableworld.tistory.com/manage/posts/

 

Tistory

좀 아는 블로거들의 유용한 이야기

www.tistory.com

 

 

다음은 한줄풀이다.  굉장히 pythonic한 코드니 참고하자.

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