[TIL] 데일리 학습 - 21006

David Oh·2022년 10월 6일
0

TIL

목록 보기
2/6

JavaScript 알고리즘 기초

프로그래머스 레벨 0을 위한 기초 문법

  • parseInt(A/B) : A를 B로 나눈 몫
 const answer =  parseInt(num1 / num2)
  • array.push(item) : 자바스크립트에서 배열의 끝에 요소 및 아이템을 추가
array = []
array.push(item)
// array === [item]
  • array.reverse() : 해당 배열을 거꾸로 뒤집어 리턴하게 해주는 매소드
array = ['a', 'b', 'c']
array.reverse()
// array === ['c', 'b', 'a']
  • 최대공약수를 통해서 기약분수를 도출하는 방법
function solution(denum1, num1, denum2, num2) {
    const answer = [];
    const 분자 = denum1 * num2 + denum2 * num1
    const 분모 = num1 * num2
    
    // 최대공약수 찾기
    
    const getGCD = (분모, 분자) => {
        let gcd = 1;
        for(let i=2; i<=Math.min(분모, 분자); i=i+1){
            if(분모 % i === 0 && 분자 % i === 0){
                gcd = i;
            }
        } return gcd;
    } 
    
    answer.push(분자 / getGCD(분모, 분자))
    answer.push(분모 / getGCD(분모, 분자))
     
    return answer;

기약분수는 1 이외에 더이상 나누어 떨어지는 수가 없는 분수이며, 위처럼 최대공약수를 찾아 '분자'와 '분모'를 최대공약수로 나누어 주어야 합니다.

이러한 최대공약수를 찾는 방식은 2부터 시작해서 비교하는 두가지의 숫자중에서 더 적은 숫자까지 반복하며 index가 두 수를 모두 나누어 떨어지게 만드는 값중 최신의 값으로 return 된 것을 찾으면 됩니다.

profile
let David_Oh === UX+Programming

0개의 댓글