240610 배열, 수학

정수현·2024년 6월 10일

Programmers

목록 보기
2/4

2024.06.10

🌞 Day 2

01 두 수의 나눗셈
02 숫자 비교하기
03 분수의 덧셈
04 배열 두 배 만들기


📍 두 수의 나눗셈

▶ 문제 설명

정수 num1num2가 매개변수로 주어질 때, num1num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 solution 함수를 완성해주세요.

▶ 코드 작성

function solution(num1, num2) {
    var answer = parseInt(num1/num2*1000);
    return answer;
}

▶ 실행 결과

num1 num2 result
3 2 1500
7 3 1500
1 16 62

📍 숫자 비교하기

▶ 문제 설명

정수 num1num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 return 하도록 solution 함수를 완성해주세요.

▶ 코드 작성

▶ 실행 결과

num1num2 result
23-1
1111
799-1

📍 분수의 덧셈

▶ 문제 설명

첫 번째 분수의 분자와 분모를 뜻하는 numer1, denum1, 두 번째 숫자의 분모와 분자를 뜻하는 numer2, denum2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성하세요.

function solution(numer1, denom1, numer2, denom2) { 
  var answer=[];
  return answer;
}

▶ 코드 작성

🚩 분수의 덧셈

분모 통분 >> denom1 x denom2
분자끼리 덧셈 >> (numer1 x denom2) + (numer2 x denom1)

function solution(numer1, denom1, numer2, denom2) { 
  var answer = [];
  var denom = denom1 * denom2;
  var numer = (numer1 * denom2) + (numer2 * denom1);
  
  return answer;
}

🚩 분자, 분모를 최대공약수로 나누기

① 분자, 분모 중 작은 수 찾기

let minNumber;
if(numer < denom) {
  minNumber = numer;
} else {
  minNumber = denom;
}

if문과 for문에서 쓸 전역변수minNumber를 만든다.
◾ 분자 numer와 분모 denom를 비교하여 더 작은 수를 minNumber에 할당한다.

② 작은 수를 분자, 분모로 나눠보기

②-1 "둘 다 나누어 떨어지면" 그 나눈 수가 최대공약수

◾ 나누어 떨어진다 == 나머지가 0인 것
◾ 나머지 구하는 연산자 : %

if(numer % minNumber === 0) {
  if(denom % minNumber === 0) {
    return [numer / minNumber, denom / minNumber];
  }
}

②-2 안 나누어떨어지면 작은 수를 1 줄이고 ②로 돌아가기

while (true) {
  if(numer % minNumber === 0) {
    if(denom % minNumber === 0) {
      return [numer / minNumber, denom / minNumber];
    }
  }
  minNumber--;
}

💻 전체 코드

function solution (numer1,denom1,numer2,denom2) {
  var denom = denom1 * denom2;
  var numer = (numer1 * denom2) + (numer2 * denom1);
  var answer = [numer, denom];
  
  let minNumber;
  if (numer < denom) {
    minNumber = numer;
  } else {
    minNumber = denom;
  }
  
  while (true) {
    if (numer % minNumber === 0) {
      if (denom % minNumber === 0) {
        return [numer / minNumber, denom / minNumber];
      }
    }
    minNumber--;
  }
}

▶ 실행 결과

numer1denom1numer2denom2 result
1234[ 5, 4 ]
9213[ 29, 6 ]

📍 배열 두 배 만들기

▶ 문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return 하도록 solution 함수를 완성해주세요.

▶ 코드 작성

function solution(numbers) {
    var answer = [];
    for(let i=0;i<numbers.length;i++) {
        answer[i]=numbers[i] * 2;
    }
    return answer;
}

▶ 실행 결과

numbersresult
[ 1, 2, 3, 4, 5 ][ 2, 4, 6, 8, 10 ]
[ 1, 2, 100, -99, 1, 2, 3 ][ 2, 4, 200, -198, 2, 4, 6 ]

프로그래머스 문제 링크
01 두 수의 나눗셈
02 숫자 비교하기
03 분수의 덧셈
04 배열 두 배 만들기

0개의 댓글