문제 설명 :
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
function solution(absolutes, signs) {
let sum = 0;
for(let i = 0; i < signs.length; i++) {
if(signs[i] === true) {
sum = sum + absolutes[i];
} else {
sum = sum - absolutes[i];
}
}
return sum;
}
문제풀이
매개변수로 주어진 absolutes와 signs가 모두 배열이기 때문에 반복문으로 문제를 해결한다 구해야하는 값은 부호가 붙은 absolutes의 모든 요소들의 합이기 때문에 각 요소를 더해줄 sum 변수를 선언하고 0을 할당한다. 반복문의 조건식은 absolutes와 signs의 배열의 길이가 같으므로 어떤것을 써도 관계없다. 반복문을 돌면서 signs[i]가 true이면 양수이므로 sum에 더해주고 false면 음수이므로 빼준다. 최종리턴은 sum을 해주면 결과값이 나오게 된다.
시간복잡도 : 반복문을 한번만 사용하는 O(n)의 시간복잡도
상태로 관리해야하는 데이터는 컴포넌트 안에서 관리되고 시간이 지나거나, 사용자가 값을 입력했을 때 바뀌는 동적인 성질을 가지고 있어야 한다