TIL/2023

20230110_TIL

석봉2 2023. 1. 10. 23:48

1. 오늘 한 일 

1) Problem

더보기

문제 설명

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

2) Try 

// num1*denom2 + num2*denom1 , denom1 * denom2
// 최대공약수 구하기 
// if (A>B) A % B = reminder , B % reminder = reminder , 반복  
// A % B == 0 이 될 때 까지 구해서 reminder로 분수 분모 나누기

이렇게 로직을 생각하기는 했는데 반복문을 작성하면서 reminder를  반복해서 나누는 부분에서 헤맸다. 

3) Solve 

function solution(numer1, denom1, numer2, denom2) { 
    var arr = [];
    var A = numer1*denom2 + numer2*denom1; 
    var B = denom1 * denom2;
    var maximun = 1 ; 
    for (let i=1; i <= A ; i++){
        if(A%i === 0 && B%i === 0){
            maximun = i 
        }
    }
        return [A/maximun , B/maximun]
            
}

4) New knowledge

for문 

for(초기식, 조건식, 증감식){

    조건식의 결과가 참이고 반복적으로 실행하고자 하는 실행문 ; 

}

 

while문 

while (조건식) {

조건식의 결과가 참이고 반복적으로 실행하고자 하는 실행문 ; 

}

 

언제 for , while문을 사용할지?

=> for문은 횟수가 정해져 있을 때 사용하면 좋고, while문은 그렇지않고 조건식만 있을 때 사용하면 좋다. 

2. 오늘 느낀점 

일단 손으로 코딩을 해보고 그것을 머릿속으로 옮기는 작업을 꾸준히 해야 실력이 늘겠구나 생각이 들었다. 

3. 내일 할 일 

- 강의 듣기 

- 알고리즘 문제풀이 

- 혼공스 교재 보기 

댓글수0