TIL(Today I Learned)_데일리루틴_24.11.10.Sun

728x90

데일리루틴 SQL

MySQL 오랜 기간 보호한 동물(2) 정답입니다.
SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O
JOIN ANIMAL_INS I ON O.ANIMAL_ID = I.ANIMAL_ID
ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC
LIMIT 2;

 

  • SELECT O.ANIMAL_ID, O.NAME : ANIMAL_OUTS 테이블에서 ANIMAL_ID와 NAME 컬럼을 선택합니다.
  • FROM ANIMAL_OUTS O : ANIMAL_OUTS 테이블을 O라는 별칭으로 지정합니다.
  • JOIN ANIMAL_INS I ON O.ANIMAL_ID = I.ANIMAL_ID : ANIMAL_OUTS와 ANIMAL_INS 테이블을 ANIMAL_ID 컬럼을 기준으로 내부 조인합니다.
  • ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC : ANIMAL_OUTS와 ANIMAL_INS의 날짜 차이를 계산하여 내림차순으로 정렬합니다. 이로써 가장 오래된 입소와 출소 날짜 차이를 맨 위에 오도록 합니다.
  • LIMIT 2 : 상위 두 개의 레코드만을 선택합니다.

 


데일리루틴 알고리즘

java 부족한 금액 계산하기 정답입니다.
class Solution {
    public long solution(int price, int money, int count) {
        long result = 0;
        long usedMoney = 0;
        for (int i = 1; i <= count; i++) {
            usedMoney += (long)price * i;
        }
        if (money >= usedMoney) {
            result = 0;
        } else {
            result = usedMoney - money;
        }
        return result;  
    }
}

 

  • public long solution(int price, int money, int count) { ... }
    세 개의 정수 매개변수를 받아서 결과로 long 타입의 값을 반환하는 solution 메소드를 정의합니다.
    • price: 놀이기구 1회 탑승 가격
    • money: 현재 가지고 있는 총 금액
    • count: 놀이기구를 타고 싶은 횟수
  • long result = 0;
    결과를 저장할 변수 result를 선언하고 초기값을 0으로 설정합니다. 최종적으로 반환될 값이 이 변수에 저장됩니다.
  • long usedMoney = 0;
    놀이기구를 여러 번 타면서 사용하게 될 총 금액을 저장할 변수 usedMoney를 선언하고 초기값을 0으로 설정합니다.
  • for (int i = 1; i <= count; i++) { ... }
    놀이기구를 총 count번 탈 때까지 반복문을 실행합니다. i는 현재 탑승 횟수를 나타냅니다.
  • usedMoney += (long)price * i;
    현재 탑승 횟수 i에 대한 비용을 총 사용 금액인 usedMoney에 더합니다. (long)price를 사용해 가격을 long으로 형 변환함으로써 계산 과정에서의 오버플로우를 방지합니다.
  • if (money >= usedMoney) { ... }
    현재 가지고 있는 금액 money가 놀이기구를 타는데 사용된 총 금액 usedMoney보다 크거나 같으면 조건문을 실행합니다.
  • result = 0;
    가지고 있는 돈이 충분할 경우, 부족한 금액이 없으므로 결과는 0으로 설정합니다.
  • else { ... }
    만약 가지고 있는 돈이 총 사용된 금액보다 부족할 경우를 처리합니다.
  • result = usedMoney - money;
    필요한 총 금액에서 현재 가진 돈을 뺀 값, 즉 부족한 금액을 result에 저장합니다.
  • return result;
    최종 결과인 result를 반환합니다.
    • 돈이 충분하다면 0이 반환됩니다.
    • 돈이 부족하다면 부족한 금액이 반환됩니다.

 

728x90
반응형
LIST