ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 음양 더하기 (불리언, 배열의 나열 더하기/빼기, 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.length 

     

    let 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;
    }

     

    댓글

Designed by Tistory.