Coding Test/프로그래머스 Lv.0
음양 더하기 (for문, 삼항연산자or if문, 배열의 더하고 빼기)
sangwoo_rhie
2023. 5. 27. 14:57
signs가 [true,false,true] 이므로, 실제 수들의 값은 각각 4, -7, 12입니다.
따라서 세 수의 합인 9를 return 해야 합니다.
제한사항
1. absolutes의 길이는 1 이상 1,000 이하입니다.
2. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
3. signs의 길이는 absolutes의 길이와 같습니다.
4. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
사실 제한사항은 안중요함.
이번 문제는 for문과 elseif을 사용해보기.
정수 배열이랬으므로 absolutes는 [ 1 , 2 , 3 , 4 ] 이런식.
✔️어떤 문제가 있었는지
function soultion(absolutes, signs) {
var answer = 0;
for (var i = 0; i < absolutes.length; i++) {
if (signs[i] === true) {
answer = answer + absolutes[i];
} else if (signs[i] === false) {
answer = answer - absolutes[i];
}
}
return answer;
}
매개변수를 정수배열과 불리언배열인 absolutes , signs 로 각각 설정.
var answer = 0; 설정 이유는 숫자이므로 0부터 시작.
for문으로 i는 0부터, 정수배열의 길이(absolutes.length)보다 적으면 1씩추가.
만약 양수면 (signs[i] === true) 추가
음수면 (signs[i] === false) 빼기
✔️내가 시도해본 것들
위의 식은 틀렸음.
✔️어떻게 해결 했는지
function solution(absolutes, signs) {
let answer = 0;
for (let i = 0; i < absolutes.length; i++) {
signs[i] ? answer += absolutes[i] : answer -= absolutes[i]
}
return answer;
}
for문과 삼항연산자를 사용.
function solution(absolutes, signs) {
let answer = 0;
for (let i = 0; i < absolutes.length; i++) {
signs[i] ? answer += absolutes[i] : answer -= absolutes[i]
}
return answer;
}
for문은 그대로 씀
signs[i] ? answer += absolutes[i] : answer -= absolutes[i]
부호가true일 경우 더하고 false일 경우 뺌.
✔️새롭게 알게된 것