https://programmers.co.kr/learn/courses/30/lessons/76501
1. 이해
정수들의 배열 absolutes가 주어진다
이 정수들의 음양을 판별할 불리언 배열 signs가 주어진다.
음양을 올바르게 판별하고 그 숫자들을 더한다.
2. 계획
absolutes와 signs를 반복으로 돈다
배열 내 각 요소를 비교한다.
signs가 true면 양수
signs가 false면 음수
이렇게 판별한 값들을 더해준다.
function solution(absolutes, signs) {
let result = 0;
for(i=0; i < absolutes.length; i++) {
if(signs[i] === true) {
result += absolutes[i];
} else {
result += absolutes[i] * -1;
}
}
return result;
}
우선, 처음에 급박하게 생각나는대로 풀었던 코드
간단하게 for 반복문을 사용해서 풀었다.
signs가 true면 absolutes 숫자 그냥 result에 더해주고
signs가 false면 absolutes 숫자에 -1을 곱해서 음수를 만들어서 result에 더해주었다.
쓰면서 생각해보니까 -1 안곱하고 그냥 absolutes 숫자를 result에 빼줘도 될듯,,?
function solution(absolutes, signs) {
return absolutes.reduce(
(prev, curr, index) => prev + curr * (signs[index] === true ? 1 : -1),
0
);
}
reduce를 사용해서도 풀어봤다.
absolutes내 요소들 하나씩 값을 누적해서 더한 값을 리턴하도록 했다.
콜백에 index를 넣어주었다.
코드를 간결하게 나타내기 위해서 삼항연산자를 사용했다.
signs[index]가 true면 1을 곱해주고
false면 -1을 곱해주도록 했다.
초기값은 0으로 설정해줬다.
'코테연습' 카테고리의 다른 글
47-2. 3진법 뒤집기(2) (0) | 2022.05.18 |
---|---|
47-1. 3진법 뒤집기 (0) | 2022.05.17 |
45. 키패드 누르기 (0) | 2022.05.17 |
44. 없는 숫자 더하기 (0) | 2022.05.13 |
43. 크레인 인형 뽑기 게임 (0) | 2022.05.13 |
댓글