잘 읽다 보면 제한사항에 답이 있을 수도 있다는 말에 제한사항을 보니
- signs의 길이는 absolutes의 길이와 같습니다.
- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다
이러한 조건을 보고 if,else문과 덧셈을 해야하니 for문이 생각났다.
처음에는
function solution(absolutes, signs) {
for (i = 0; i < signs.length; i++) {
if (signs[i])
absolutes[i]=absolutes[i]
else
absolutes[i]=-absolutes[i]
}
}
이렇게 작성했었는데, 생각해보니 result라는 변수에 값을 담아서 연산을 해야하기 때문에
function solution(absolutes, signs) {
let result = 0;
for (i = 0; i <= signs.length; i++) {
if (signs[i]==true)
result += absolutes[i];
else
result -= absolutes[i];
}
}
이렇게 코드를 수정했으나, 에러가 발생하였다.
구글링을 하여 알아보니, i는 0부터 시작하는데, signs의 길이에 도달할 때까지 간다는 것은 1을 추가로 하는 것이기 때문에 에러가 나는 것이었다.
function solution(absolutes, signs) {
let result = 0;
for (i = 0; i < signs.length; i++) {
if (signs[i])
result += absolutes[i];
else
result -= absolutes[i];
}
return result;
}
그리하여 수정을 하니 이러한 코드가 나왔다.
마지막으로 result를 리턴해주면서 값을 반환하므로써 에러가 나지 않게 되었다. if부분의 ===true가 없는 것은 없어도 되기 때문이다...