접근 방법
- 배열의 길이만큼 반복
- 두 배열에서 원소를 하나씩 꺼내와 부호 판단 후 answer에 더해줌
#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을 쓰는 것이 익숙하지 않다.