KimMinJun
Coding Note
KimMinJun
전체 방문자
오늘
어제
  • 분류 전체보기 (487)
    • ALGORITHM (11)
      • 정렬 (6)
      • 최단경로 (1)
      • 자료구조 (1)
      • 슬라이딩 윈도우 (1)
      • etc (2)
    • Git (5)
    • Web (24)
      • Vanilla JS (13)
      • TS (2)
      • React (7)
      • ETC (1)
    • React 공식문서 (번역, 공부) (11)
      • Quick Start (2)
      • Installation (0)
      • Describing the UI (9)
      • Adding Interactivity (0)
      • Managing State (0)
      • Escape Hatches (0)
    • Next.js 공식문서 (번역, 공부) (3)
      • Getting Started (2)
      • Building Your Application (1)
    • PS (432)
      • 백준 (187)
      • Programmers (105)
      • CodeUp (21)
      • STL (3)
      • 제코베 JS 100제 (50)
      • SWEA (0)
      • LeetCode (65)
    • IT (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

인기 글

태그

  • Level1
  • string
  • 제코베 JS 100제
  • 문자열
  • 그래프
  • 백준
  • C++
  • 수학
  • tree
  • C
  • Level 0
  • js
  • LeetCode
  • programmers
  • Level 1
  • 정렬
  • 다이나믹 프로그래밍
  • codeup
  • recursion
  • Level 2

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun
PS/Programmers

Programmers / Level 0 / 분수의 덧셈 / JS

PS/Programmers

Programmers / Level 0 / 분수의 덧셈 / JS

2022. 10. 24. 22:34

문제 설명

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

 
제한사항
  • 0 <denum1, num1, denum2, num2 < 1,000

 

입출력 예
denum1 num1 denum2 num2 result
1 2 3 4 [5, 4]
9 2 1 3 [29, 6]

 

입출력 예 설명

입출력 예 #1

  • 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.

입출력 예 #2

  • 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.

 

function gcd(n1, n2) {
  return n2 ? gcd(n2, n1 % n2) : n1;   
}

function solution(denum1, num1, denum2, num2) {
  let denum = denum1 * num2 + denum2 * num1;
  let num = num1 * num2;
  
  let divisor = gcd(denum, num);
  
  return [denum / divisor, num / divisor];
}

기약분수는 나중에 생각하고 일단 통분해서 분수끼리의 덧셈을 해주었다.

그리고 그 다음에 기약분수로 만들어주었는데, 그 때는 분모와 분자의 최대공약수를 각각 분모, 분자에 나누어줘야 한다.

 

최대공약수 구하는 함수를 따로 빼주어서 구현하였다.

(gcd 함수 설명은 이전 포스팅에 설명한적 있으므로 밑에 참고해주시면 감사하겠습니다)

 

2021.08.01 - [PS/백준] - 백준 / 수학 / 2609번 / 최대공약수와 최소공배수 / C++

 

백준 / 수학 / 2609번 / 최대공약수와 최소공배수 / C++

문제 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의

jun-coding.tistory.com

 

저작자표시 (새창열림)

'PS > Programmers' 카테고리의 다른 글

Programmers / Level 0 / OX퀴즈 / JS  (0) 2022.10.26
Programmers / Level 0 / 다항식 더하기 / JS  (0) 2022.10.24
Programmers / Level 0 / 안전지대 / JS  (0) 2022.10.24
Programmers / Level 0 / 겹치는 선분의 길이 / JS  (0) 2022.10.24
    'PS/Programmers' 카테고리의 다른 글
    • Programmers / Level 0 / OX퀴즈 / JS
    • Programmers / Level 0 / 다항식 더하기 / JS
    • Programmers / Level 0 / 안전지대 / JS
    • Programmers / Level 0 / 겹치는 선분의 길이 / JS
    KimMinJun
    KimMinJun

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.