TIL 20230102 - 175번

hoin_lee·2023년 1월 2일
0

TIL

목록 보기
140/236

오늘 공부

알고리즘 문제 풀기(프로그래머스)
https://github.com/hoinlee-moi/Algorithm

JS기본문법 다시 공부
https://github.com/hoinlee-moi/ModernJS

React 강의 듣기
https://github.com/hoinlee-moi/React_prac


공부는 계속해서 쉬는 날 없이 꾹꾹 채워 넣어 진행했다.
연말 신년이라 가게가 너무 바빠서 이것만 끝내고 자야지라는 일념으로 공부를 후딱 끝내고 잠들어서 기록을 벨로그에다 하지는 못했다...
다만 github에는 다 제대로 올렸고! 알고리즘 같은 경우 커밋 푸쉬 할 때 미리 안쪽 코드 주석으로 작성을 전부 해놨다!

알고리즘

N개의 최소공배수 - https://school.programmers.co.kr/learn/courses/30/lessons/12953

이건 그냥 수학적 공식을 좀 참고하여 풀었더니 금방 풀렸다.

function solution(arr) {
    return arr.reduce((acc,cur)=>{
        return lcm(acc,cur)
    });
}

const lcm = (num1,num2) => {
    let gcd = 0
    for(let i=Math.max(num1,num2);i>0;i--){
        if(num1%i===0 && num2%i===0){
            gcd = i
            break;
        }
    }
    return (num1*num2)/gcd
}
  • 아래에 먼저 최소공배수를 구하는 함수를 만든다.
  • 최대 공약수를 먼저 구하는 수학식을 이용하는데 두 수의 곱은 최대 공약수 *최소 공배수 이기 때문에 이 식을 이용한다.
  • 최대 공약수를 구하는데 제일 큰값부터 내려오는 감소 연산자를 사용하여 최대 공약수를 구하고 이후 식을 이용해 최소 공배수를 return하게 한다.
  • 본문의 배열로 돌아가서 reduce를 사용하여 acc,cur 두 수를 이용한 최소 공배수를 구하고 그 다음 수와의 최소공배수를 구하는 식으로 나아가 배열들의 최소공배수를 구한다.

아마 아래 최대 공약수를 구하는 공식에서 좀 더 쉽게 다룰 수 있을 것 같다. 예를 들면 저번에 제곱근을 이용하여 약수를 구하는 방식으로 적은 연산을 통해 최대값을 찾을 수 있을 것 같다.

React

동적 스타일링

간단하게만 집고 넘어갈 것이지만 html에서 똑같이 css 파일을 통해 className을 지정하여 넣을 수 있지만 동적인 값을 넣기 위해선 JSX코드를 반환할 때!
style 프롭을 통해 {}를 이용하여 동적인 css코드를 넣을 수 있다.
다만 이 때 조심해야 할 것은 background-color와 같은 중간에 - 같은 대시보드가 있을 경우 제대로 읽지 못하기 때문에 ""을 이용하여 "background-color" 이렇게 감싸던가
backgroundColor 처럼 카멜케이스를 이용하면 해결 된다!

profile
https://mo-i-programmers.tistory.com/

0개의 댓글