'5월 30일' 서른두 번째 기록 [TIL]

가은·2024년 5월 30일
0

I Learned [본 캠프]

목록 보기
50/135
post-thumbnail

👩‍🏫 오늘의 출석

❓서른두 번째, 9 to 9을 해 본 소감❓

모의면접이었는데도 너무 떨려서 면접 보기 전까지 계속 긴장해서 손을 덜덜 떨며 시작을 했다. 거의 어제 하루를 꼬박 준비했는데 긴장해서는 준비한 것도 말이 꼬이고, 후반부터는 쉬운 질문에도 머리가 안 돌아가기 시작했다. 대답 못한 그 질문이 너무 아쉬워서 계속 머리에 남는다. 아, 진짜.. 그 질문만 대답했으면 이렇게 아쉽지는 않을 것 같은데 꼭 면접을 보고 나면 이렇게 하나씩 내 마음에 남는 아쉬움이 싫다.

📑오늘 학습한 내용

🧩오늘의 알고리즘 : 최대공약수와 최소공배수 🧩

문제 : 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.

제한 사항

  • 두 수는 1이상 1000000이하의 자연수입니다.
class Solution {
    public int[] solution(int n, int m) {
        // n과 m의 최대공약수를 구합니다.
        int gcd = findGCD(n, m);
        // 최소공배수를 구하기 위해 n과 m을 곱한 후 최대공약수로 나눕니다.
        int lcm = (n * m) / gcd;
        // 최대공약수와 최소공배수를 배열로 반환합니다.
        return new int[] {gcd, lcm};
    }
    
    // 유클리드 호제법을 이용하여 최대공약수를 구하는 함수입니다.
    private int findGCD(int a, int b) {
        // b가 0이 될 때까지 반복합니다.
        while (b != 0) {
            // b의 값을 임시로 저장합니다.
            int temp = b;
            // a를 b로 나눈 나머지를 b에 저장합니다.
            b = a % b;
            // a에 임시로 저장했던 값을 저장합니다.
            a = temp;
        }
        // b가 0이 되었을 때 a가 최대공약수입니다.
        return a;
    }
}

유클리드 알고리즘은 두 숫자의 최대 공약수(GCD)를 찾는 간단하고 효율적인 방법입니다. 두 숫자의 GCD는 두 숫자를 나머지 없이 나누는 가장 큰 숫자입니다.

유클리드 알고리즘의 작동 방식을 이해하는 쉬운 방법은 다음과 같습니다.

  1. 두 개의 숫자로 시작: 이를 ab라고 부르겠습니다. 여기서 a는 더 큰 숫자이고 b는 더 작은 숫자입니다.
  2. 큰 수를 작은 수로 나눕니다: 이 나눗셈의 나머지를 계산합니다. 수학적인 용어로 이는 a % b(여기서 %는 나머지를 나타냄)로 작성할 수 있습니다.
  3. 큰 숫자 바꾸기: 더 작은 숫자 b의 값을 가져와 ab로 바꿉니다. 그런 다음 'b'를 2단계에서 얻은 나머지 값으로 바꿉니다.
  4. 반복: 나머지가 0이 될 때까지 이 과정을 계속합니다. 나머지 0에 도달하면 'b'의 현재 값은 원래 두 숫자의 GCD입니다.

🧩 오늘의 SQL : 성분으로 구분한 아이스크림 총 주문량 🧩

문제 : 상반기 동안 각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총주문량을 총주문량이 작은 순서대로 조회하는 SQL 문을 작성해주세요. 이때 총주문량을 나타내는 컬럼명은 TOTAL_ORDER로 지정해주세요.

SELECT I.INGREDIENT_TYPE, SUM(F.TOTAL_ORDER) AS 'TOTAL_ORDER'
FROM FIRST_HALF F
JOIN ICECREAM_INFO I
ON F.FLAVOR = I.FLAVOR
GROUP BY I.INGREDIENT_TYPE
ORDER BY F.TOTAL_ORDER

오전에는 면접을 보고 오후에는 개인과제를 계속 진행하는데 JWT.. 왜 이렇게 어려울까..
3시부터 1시간은 Spring Mvc 실시간 강의를 들었다.

0개의 댓글