문제 설명
어떤 정수들이 있습니다. 이 정수들의 절대값을 차례대로 담은 정수 배열 absoultes와 이 정수들의 부호를 차례대로 담은 boolean 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하는 함수
제한사항
- absolutes의 길이는 1 이상 1,000 이하입니다.
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
내가 푼 문제 풀이
1. for문과 if문을 사용하여서 signs[i]가 true이면 양수이기 때문에 Math.abs를 사용하여 sum에 더해주고
signs[i]가 false이면 음수이기 때문에 absolutes[i]에 *-1을 해서 음수로 만들어서 sum에 더한다.
function solution(absolutes, signs) {
let answer = 123456789;
let sum = 0
for(let i = 0; i<absolutes.length; i++){
if(signs[i] == true){
sum += absolutes[i]
// absolutes[i]의 값을 양수 그대로 sum에 더한다.
}else{ // signs == false
sum += absolutes[i] * -1
// -1을 곱해서 absolutes[i]의 값을 음수로 바꾼다.
// 음수로 바뀐 값을 sum에 더한다.
// sum -= absolutes[i]로 해도 됨
}
}
return answer=sum;
}
1. for문 안에 삼항연산자를 사용하여 signs[i]가 true이면 양수이기 때문에 참 결과값에 absolutes[i]를 넣어주고
false인 경우에는 음수이기 때문에 absolutes[i] * -1을 해서 음수로 만들어 준다.
2. 1번의 결과값을 check 변수에 담고 check 변수를 sum 변수에 담아준다.
function solution(absolutes, signs) {
let answer = 123456789;
let sum = 0
for(let i = 0; i<absolutes.length; i++){
let check = signs[i] == true ? absolutes[i] : absolutes[i] * -1
sum += check
}
return answer=sum;
}
https://programmers.co.kr/learn/courses/30/lessons/76501
'항해 중 > 2주차 알고리즘(프로그래머스)' 카테고리의 다른 글
배열함수 연습 문제 (0) | 2021.11.08 |
---|---|
배열함수(forEach, map, filter, some, every, find, findIndex) (0) | 2021.11.08 |
1일차 → 없는 숫자 더하기(inclues(), for of 명령문) (0) | 2021.11.08 |
1일차 → 문자열을 정수로 바꾸기(parseInt(), Number(), 숫자 연산자) (0) | 2021.11.08 |
1일차 → 평균 구하기(reduce()) (0) | 2021.11.08 |
댓글