-
음양 더하기 (불리언, 배열의 나열 더하기/빼기, for, if문)Coding Test/프로그래머스 Lv.0 2023. 5. 24. 10:45
https://school.programmers.co.kr/learn/courses/30/lessons/76501
<본문제 전 예시>
입출력 예 #1
signs가 [true, false, true]이므로 실제 수의 값은 각각 4, -7, 12
따라서 세 수의 합인 9를 return해야 함.
var abolutes = [4, 7, 12]; var signs = [true, false, true]; console.log(solution(absolutes, signs));
입출력 예 #2
signs가 [false, false, true]이므로, 실제 수들의 값은 각각 -1, -2, 3
따라서 세 수의 합인 0을 return 해야 함.
(True값은 양수, False값은 음수)
var absolutes = [1, 2, 3]; var signs = [false, false, true]; console.log(solution(absolutes, signs));
[문제]
어떤 정수들이 있습니다.
이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes = 매개변수
이 정수들의 부호를 차례대로 담은 불리언 배열 signs = 매개변수
실제 정수들의 합 구해서 return하는 solution함수 완성해보기.
absolutes의 길이는 1이상 1000이하
signs의 길이 = absolutes의 길이
07(함수).js -> 함수 선언문
18(for문).js
<조건>
1. 정수들
2. 절댓값 정수배열 = absolutes (매개변수)
3. 정수부호 불리언배열 signs (매개변수)
4. function solution 으로 (return = 실제 정수의 합) 구하시오.
5. 1 <= absolutes.length <=1000
6. sign.length = absolutes.lengthlet x = absolutes
let y = signs
let x = absolutes let y = signs function solution (x, y){ var answer = 0; return answer; }
중괄호에 들어가야 하는 것
1. return해야 하는 answer 생성
2. 두 배열(x, y)을 비교해가며 값을 더하거나 빼주기 -> for문 써야함 for( ) { }
3. 두 배열은 크기가 같음. x.length = y.length
(var answer = 0으로 한 이유는, 출력해야 하는 값이 숫자이므로 var answer = 0으로 먼저 선언)
여기서 for문은 absolutes로 하든, signs로 하든 상관없다. absolutes로 해보자.
let x = absolutes로 선언했으므로 길이는 x.length
for (var i=0; i < x.length; i++) { 부호(+,-)에 따른 처리 분기처리=if문 }
if문에 들어갈 것은 아래와 같다.
let y= signs 선언했으므로 y [ i ] === true는 양수인 경우, y [ i ] === false은 음수인 경우이다.
if(y[i] === true) { //값이 true인 경우(양수) } else if (y[i] === false) { //값이 false인 경우 (음수) }
값이 true인 경우는 양수이므로
answer = answer + x [ i ]
값이 false인 경우는 음수이므로
answer = answer - x [ i ]
(signs의 해당 값 y[ i ] 이 음수면, 마이너스가 앞에 붙는 것이기 때문에 예를들어 7로 들어가있어도 -7로 들어가는것이기 때문에, 값을 빼줘야 최종합이 일치한다)
let x = absolutes let y = signs function soultion(x, y) { var answer = 0; for (var i = 0; i < x.length; i++) { if (y[i] === true) { answer = answer + x[i]; } else if (y[i] === false) { answer = answer - x[i]; } } return answer; }
let x = absolutes,
let y = signs 값을 따로 설정 안하고 할 시
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; }
'Coding Test > 프로그래머스 Lv.0' 카테고리의 다른 글
음양 더하기 (for문, 삼항연산자or if문, 배열의 더하고 빼기) (0) 2023.05.27 두 수의 나눗셈 (몫 구하기) Math.trunc 소수점 제거 함수 (0) 2023.05.26 배열 안의 문자열 정리하기 (자동정렬sort, replace, 배열변경, 배열삭제) (0) 2023.05.26 문자열 내 p와 y의 개수 (filter문, split으로 문자 나누기) (0) 2023.05.26 문자열 내 p와 y의 개수 (문자열분할split문, filter문) (0) 2023.05.23