BAEKJOON - 2588번

 게시일:

1. 문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

2. 입력

첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

3. 출력

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

4. 코드

// O(n), 로직 방식
function solution(a, b){
  let answer = [];
  let k = 1;

  for(let i = 0; i < b.toString().length; i++){
    answer[i] = a * parseInt(b % (10 * k) / k);
    k *= 10;
  }
  answer[b.toString().length + 1] = a * b;

  return answer.reduce((p , q) => `${p}\n${q}`);
}

let exampleA = 472;
let exampleB = 385;
console.log(solution(exampleA, exampleB));
// O(1), 다이렉트 방식
function solution(a, b){
  let answer = [];

  answer[0] = a * parseInt((b % 10));
  answer[1] = a * parseInt((b % 100) / 10);
  answer[2] = a * parseInt(b / 100);

  answer[b.toString().length + 1] = a * b;

  return answer.reduce((p , q) => `${p}\n${q}`);
}

let exampleA = 472;
let exampleB = 385;
console.log(solution(exampleA, exampleB));

참고 자료

BAEKJOON 2588번 문제

태그:

카테고리:

업데이트:

댓글남기기