목록문제풀이 (4)
오랑우탄의 반란
오늘도 오랑이는 문제를 풉니다. 최대공약수와 최소공배수 최대공약수, 최소공배수의 특징을 알고 활용하는 문제입니다.1. 최대공약수 = 두 수 중 큰 수를 작은 수로 나눴을 때의 나머지 값 m%n2. 최소공배수 = 두 수의 곱을 최대공약수로 나눈 값 (m*n) / (m%n) 그래서 아래와 같이 풀었는데 어김없이 틀렸습니다. 입력이 9, 7 일 때의 케이스에 대한 나머지 계산이 더 필요하기 때문입니다. def solution(n, m): b, a = max(n,m), a = min(n,m) if b%a == 0: answer = [a,b] else: answer = [b%a,(b*a)/(b%a)] return answer 가장 간단한 풀이는 아래와 ..
오늘도 오랑이는 문제를 풉니다. 570. Managers with at Least 5 Direct Reports 셀프조인을 사용해서 풀 수 있는 간단한 문제입니다.SELECT E1.NAMEFROM EMPLOYEE E1 JOIN EMPLOYEE E2 ON E1.ID = E2.MANAGERIDGROUP BY E1.ID, E1.NAMEHAVING COUNT(E2.MANAGERID) >= 5; 하지만 주말 동안 뇌를 비운 오랑이는 순간 착각하고 멍청한 실수를 해버립니다.HAVING COUNT(DISTINCT E2.MANAGERID) 로 작성해서 틀려버렸습니다.공통 값에 대해 JOIN 되고 GROUP BY 로 묶였기 때문에 E2.MANAGERID 칼럼의 값들은 NULL 값 제외, 그리고 E1.ID 와 E1.N..
테이블을 자기 자신과 조인하는 셀프 조인에 대해 알아보겠습니다. SELF JOIN은 한 테이블 내에서 칼럼 간, 개별 값 간 대조가 필요할 때 사용할 수 있습니다. 문법은 JOIN/쉼표로 연결하고 (필수) 별칭을 붙여줍니다.SELECT column_name(s)FROM table1 T1, table1 T2WHERE condition; 아래 두 가지 예시로 SELF JOIN의 활용을 살펴보겠습니다. LeetCode | 197. Rising Temperaturehttps://leetcode.com/problems/rising-temperature/ 하나의 테이블 내의 날짜 값과 온도 값에 대한 비교가 필요하기 때문에 self join 을 사용해서 이어줍니다. from weather w1 join we..
오늘도 오랑이는 문제를 풉니다. 한 번에 풀 수 있을 것처럼 생겨서 한 번에 풀리지 않아서 머리 싸맨 문제 중 하나입니다. 역시 오랑이는 아직 갈 길이 멉니다. 문제 설명 다음은 어느 자동차 대여 회사에서 대여 중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블과 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 자동차 종류 별 대여 기간 종류 별 할인 정책 정보를 담은 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블 입니다. 문제1. 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 2. 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력3. 대여 금액을 기준으..