:ledger: 문제 설명

정수 num1num2 가 매개변수로 주어질 때, num1num2 의 곱한 값을 return 하도록 solution 함수를 완성해주세요.

:one: 제한사항

  • -50,000 ≤ num1 ≤ 100
  • -50,000 ≤ num2 ≤ 100

:two: 입출력 예

num1 num2 result
3 4 12
27 19 513

:three: 입출력 예 설명

:pushpin: 3-1) 입출력 예 설명 #1

num1이 3, num2가 4이므로 3 * 4 = 12를 return합니다.

:pushpin: 3-2) 입출력 예 설명 #2

num1이 27, num2가 19이므로 27 * 19 = 513을 return합니다.

:four: 프로그래머스에서 제공한 코드

처음 프로그래머스에서 작성된 코드는 아래와 같다.

function solution(num1, num2) {
    var answer = 0;
    return answer;
}

:ledger: 문제 풀이

const solution = (num1, num2) => num1 * num2;

console.log(solution(3, 4)); // 12
console.log(solution(27, 19)); // 513

:one: 수 선언

  • 화살표 함수를 사용하여 num1, num2 매개변수를 받는다.

:two: 풀이

  • 입출력 예 설명에 맞춰 num1 * num2 해주었다.
  • 화살표 함수의 단일 표현식을 사용하여 리턴을 생략하여 적용

:three: 결과 반환

  • num1에 3, num2에 4을 대입할 경우 3 * 4 = 12 반환
  • num1에 27, num2에 19을 대입할 경우 27 * 19 = 513 반환

:four: 실행

  • console.log(solution(3, 4));을 호출하면, 12 반환
  • console.log(solution(27, 19));을 호출하면, 513 반환

:fire: 다른 사람의 풀이 참고

이중 for 문을 사용한 방법도 있었고, while 문을 사용한 방식도 있었다.
또한 reduce 메서드를 사용하여 적용한 풀이과정이 있는데, 마침 현재 공부하고있는 메서드라 관심이 더 갔다.

// [J] 이중 for 문을 사용한 풀이 과정
function solution(num1, num2) {
    var ans = 0;

    for (let i = 1; i <= num1; i++){
        for (let j = 1; j <= num2; j++){
            ans = ans + 1;
        }
    }

    return ans;
}

// [bjigeon] reduce 메서드를 사용한 풀이 과정
function solution(num1, num2) {
    const array = [num1, num2];
    return array.reduce((acc, cur) => acc*cur,1);
}

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges