Lv1. 같은 숫자는 싫어 (Python)
링크: https://school.programmers.co.kr/learn/courses/30/lessons/12906
내가 작성한 코드
def solution(arr):
answer = []
for i in arr:
if len(answer) == 0: # answer가 비어있는 경우
answer.append(i) # answer에 i를 추가
else: # answer에 이미 값이 하나 이상 있는 경우
if answer[-1] != i: # answer의 마지막 값과 i값이 다르다면
answer.append(i) # 다를 때만 answer에 i를 추가
return answer
새로 배운 코드
def solution(arr):
answer = []
for i in arr:
if answer[-1:] == [i]: # answer의 마지막 값이 i와 같으면
continue # 연속 중복이므로 즉시 반복 종료
answer.append(i) # 중복이 아니면 answer에 추가
return answer
Lv3. 대여 기록이 존재하는 자동차 리스트 구하기 (MySQL)
링크: https://school.programmers.co.kr/learn/courses/30/lessons/157341
내가 작성한 코드
-- 풀이1 (JOIN + MONTH)
SELECT DISTINCT C.CAR_ID
FROM CAR_RENTAL_COMPANY_CAR C
JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY H
ON C.CAR_ID = H.CAR_ID
WHERE C.CAR_TYPE = '세단' AND MONTH(H.START_DATE) = 10
ORDER BY C.CAR_ID DESC;
-- 풀이2 (JOIN + DATE_FORMAT)
SELECT DISTINCT C.CAR_ID
FROM CAR_RENTAL_COMPANY_CAR C
JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY H
ON C.CAR_ID = H.CAR_ID
WHERE C.CAR_TYPE = '세단' AND DATE_FORMAT(H.START_DATE, '%m') = '10'
ORDER BY C.CAR_ID DESC;
-- 풀이3 (CTE + IN)
-- WITH 부분: 10월에 대여를 시작한 자동차들의 CAR_ID 목록
WITH OCT_CAR_IDS AS(SELECT DISTINCT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE MONTH(START_DATE) = 10)
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = '세단' AND CAR_ID IN(SELECT CAR_ID FROM OCT_CAR_IDS)
ORDER BY CAR_ID DESC;
-- 풀이4 (EXISTS)
-- EXISTS: 조건을 만족하는 행이 1개라도 있으면 TRUE
SELECT C.CAR_ID
FROM CAR_RENTAL_COMPANY_CAR C
WHERE C.CAR_TYPE = '세단'
AND EXISTS(SELECT 1
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY H
WHERE H.CAR_ID = C.CAR_ID
AND MONTH(H.START_DATE) = 10)
ORDER BY C.CAR_ID DESC;'코딩테스트' 카테고리의 다른 글
| [26.01.20 코테(Python/MySQL)]-3진법 뒤집기&조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2026.01.20 |
|---|---|
| [26.01.19 코테(Python/MySQL)]-최대공약수와 최소공배수&중성화 여부 파악하기 (0) | 2026.01.19 |
| [26.01.15 코테(Python/MySQL)]-직사각형 별찍기&카테고리 별 상품 개수 구하기 (0) | 2026.01.15 |
| [26.01.14 코테(Python/MySQL)]-문자열 다루기 기본&DATETIME에서 DATE로 형 변환 (0) | 2026.01.14 |
| [26.01.13 코테(Python/MySQL)]-부족한 금액 계산하기&NULL 처리하기 (0) | 2026.01.13 |