TIL(Today I Learned)_데일리루틴_24.11.14.Thr

728x90

 데일리루틴 SQL

MySQL 성분으로 구분한 아이스크림 총 주문량 정답입니다.
SELECT I.INGREDIENT_TYPE, SUM(F.TOTAL_ORDER) FROM FIRST_HALF F
JOIN ICECREAM_INFO I ON I.FLAVOR = F.FLAVOR
GROUP BY I.INGREDIENT_TYPE
ORDER BY COUNT(F.TOTAL_ORDER)

 

  • JOIN:
    • FIRST_HALF 테이블의 FLAVOR 컬럼과 ICECREAM_INFO 테이블의 FLAVOR 컬럼을 조인합니다.
  • GROUP BY:
    • INGREDIENT_TYPE를 기준으로 그룹화하여 각 재료 유형별로 총 주문량을 집계합니다.
  • ORDER BY:
    • COUNT(F.TOTAL_ORDER)에 따라 정렬합니다.

 


데일리루틴 알고리즘

java 최대공약수와 최소공배수 정답입니다.
class Solution {
    public int[] solution(int n, int m) {
        int[] answer = {0, n*m};
        int max = Math.max(n, m);
        int min = Math.min(n, m);
        
        //최대공약수
        for (int i = 1; i <= max; i++) {
            if (max % i == 0 && min % i== 0)
                answer[0] = i;
        }
        
        //최소공배수
        for (int i = 1; i <= max; i++) {
            for (int j = 1; j <= min; j++) {
                 if (min * i == max * j) {
                     if (answer[1] > min * i) {
                        answer[1] = min * i;
                     }
                  }
            }
        }
        return answer;
    }
}

다른 방법을 몰라서 초보자답게 for와 if문 만으로 해결했습니다.


class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        
        // 최대공약수(GCD) 계산 (유클리드 호제법)
        int gcd = getGCD(n, m);
        answer[0] = gcd;
        
        // 최소공배수(LCM) 계산
        answer[1] = n * m / gcd;
        
        return answer;
    }
    
    // 유클리드 호제법으로 GCD 계산
    private int getGCD(int a, int b) {
        while (b != 0) {
            int temp = a % b;
            a = b;
            b = temp;
        }
        return a;
    }
}

chatGPT에게 더 나은 해결방법을 물어보았습니다. private을 써서 남들이 가져가서 사용할 수 없게 하고, 수학도 잘하는군요..

728x90
반응형
LIST