TIL(Today I Learned)_데일리루틴_24.12.06.Fri

728x90

데일리루틴 SQL

MySQL 서울에 위치한 식당 목록 출력하기 정답입니다.

SELECT 
    I.REST_ID, 
    I.REST_NAME, 
    I.FOOD_TYPE, 
    I.FAVORITES, 
    I.ADDRESS, 
    ROUND(AVG(R.REVIEW_SCORE), 2) AS SCORE
FROM 
    REST_INFO I 
LEFT JOIN 
    REST_REVIEW R
ON 
    I.REST_ID = R.REST_ID
WHERE 
    I.ADDRESS LIKE '서울%'
GROUP BY 
    I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS
HAVING 
    AVG(R.REVIEW_SCORE) IS NOT NULL
ORDER BY 
    SCORE DESC, 
    I.FAVORITES DESC;

데일리루틴 알고리즘

Java 로또의 최고 순위와 최저 순위 정답입니다.

import java.util.HashSet;
import java.util.Set;

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        int zeroCount = 0; // 알아볼 수 없는 숫자 개수
        int matchCount = 0; // 맞춘 숫자 개수

        // 당첨 번호를 Set으로 변환해 빠르게 비교
        Set<Integer> winSet = new HashSet<>();
        for (int num : win_nums) {
            winSet.add(num);
        }

        // 로또 번호 확인
        for (int num : lottos) {
            if (num == 0) {
                zeroCount++;
            } else if (winSet.contains(num)) {
                matchCount++;
            }
        }

        // 순위 계산
        int maxRank = getRank(matchCount + zeroCount); // 0을 모두 맞춘 경우
        int minRank = getRank(matchCount); // 0을 모두 틀린 경우

        return new int[]{maxRank, minRank};
    }

    // 맞춘 개수에 따른 순위 계산
    private int getRank(int count) {
        return count >= 2 ? 7 - count : 6;
    }
}
728x90
반응형
LIST