코딩테스트

[26.01.29 코테(Python/MySQL)]-콜라 문제&있었는데요 없었습니다

지니248 2026. 1. 29. 14:54

Lv1. 콜라 문제 (Python)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/132267

 

내가 작성한 코드

def solution(a, b, n):
    answer = 0
    
    # 빈 병이 a개 이상일 동안만 교환 가능 (반복)
    while n >= a: 
    
    # 빈 병 a개로 교환할 수 있는 횟수 (n//a) * 교환 1회당 b병을 받음 (b) = 이번에 받는 콜라 병 수 (new)
        new = (n//a)*b 
        
        answer += new
        
     # 교환에 사용하지 못하고 남은 빈 병 (n%a) + 받은 콜라를 모두 마신 뒤 생기는 빈 병 (new) = 다음 반복에서 사용 할 빈 병 개수로 갱신 (n)   
        n = (n%a) + new 
        
    return answer

Lv3. 있었는데요 없었습니다 (MySQL)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/59043

 

내가 작성한 코드

-- 관리자의 실수로 동물의 입양일이 잘못 입력됨. OUTS 테이블의 데이터가 덜 신뢰감. 
-- 따라서 기준테이블은 INS로 함. (SELECT에서 INS 를 기준으로)

-- 풀이1 (INNER JOIN)
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I
JOIN ANIMAL_OUTS O
  ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.DATETIME > O.DATETIME
ORDER BY I.DATETIME;

-- 풀이2 (USING)
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I
JOIN ANIMAL_OUTS O
USING (ANIMAL_ID)
WHERE I.DATETIME > O.DATETIME
ORDER BY I.DATETIME;

-- 풀이3 (EXISTS)
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I
WHERE EXISTS(SELECT 1
             FROM ANIMAL_OUTS O
             WHERE O.ANIMAL_ID = I.ANIMAL_ID
               AND I.DATETIME > O.DATETIME)
ORDER BY I.DATETIME;