[프로그래머스] Lv1. 음양 더하기

CHAEN·2022년 3월 10일
0

problem solving

목록 보기
2/33
post-thumbnail

문제

접근 방법

  • 배열의 길이만큼 반복
  • 두 배열에서 원소를 하나씩 꺼내와 부호 판단 후 answer에 더해줌

이전에 C++로 풀었던 내용

#include <vector>

using namespace std;

int solution(vector<int> absolutes, vector<bool> signs) {
    int answer = 0;
    
    for(int i = 0; i < absolutes.size(); i++){
        if(signs[i] == 0) answer -= absolutes[i];
        else answer += absolutes[i];
    }
  
    return answer;
}

나의 풀이

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

앞서 풀었던 내적 문제의 다른 사람 풀이를 보고 이번 문제는 조금 더 간결하게 풀 수 있을 것만 같았는데 아직은 이게 편하다..
나 말고도 많은 사람들이 이렇게 풀었다!!

다른 사람의 풀이

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

비슷한 생각은 했었는데 아직 한 줄 안에 조건문과 반복문을 함께 쓰고 zip을 쓰는 것이 익숙하지 않다.

profile
공부중입니다

0개의 댓글

관련 채용 정보