728x90

문제


https://programmers.co.kr/learn/courses/30/lessons/76501

 

코딩테스트 연습 - 음양 더하기

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re

programmers.co.kr

 

코드


function solution(absolutes, signs) {
    let answer = 0;
    let i, j;

    for (i=0; i<signs.length; i++) {
        if (signs[i] === true) {
            absolutes[i] = absolutes[i] * 1;
        }
        else absolutes[i] = absolutes[i] * -1;
    }

    for (j=0; j<absolutes.length; j++) {
        answer += absolutes[j]
    }

    return answer;
}

 

후기


  • 이 문제는 '없는 숫자 더하기' 문제와 매우 비슷하다고 느꼈고 reduce 함수를 이용해서 풀어보려 했으나 사용법이 익숙치 않아서 결국 for문으로 풀게 되었다
  • 다른 분들의 풀이에 reduce와 삼항 연산자를 이용하여 한 줄 풀이 한 것을 보았다
  • 삼항 연산자는 "조건문 ? 선택문1 : 선택문2" 의 구조로 이루어져 있고, 조건문이 true일 때, 선택문1이, false일 때, 선택문2가 실행된다
  • 삼항연산자에 대해 찾아보던 중에 JavaScript에서는 '?'가 삼항연산에서뿐만 아니라 더 다양한 쓰임새가 있다는 것을 알게 되었고 밑의 링크는 참고한 블로그이다
  • https://ichi.pro/ko/javascript-ui-mabeob-217281274422961

+ Recent posts