문제
테이블:Products
+---------------+---------+
| 열 이름 | 유형 |
+---------------+---------+
| product_id | int |
| new_price | int |
| change_date | date |
+---------------+---------+
(product_id, change_date)는 이 테이블의 기본 키(고유한 값을 가진 열의 조합)입니다.
이 테이블의 각 행은 특정 제품의 가격이 특정 날짜에 새로운 가격으로 변경되었음을 나타냅니다.
처음에는 모든 제품의 가격이 10이었습니다.
해당 날짜에 모든 제품의 가격을 구하는 솔루션을 작성하세요 2019-08-16.
결과 표를 원하는 순서 대로 반환합니다 .
결과 형식은 다음 예와 같습니다.
풀이
SELECT T1.product_id, IFNULL(T2.new_price,10) AS price
FROM (SELECT DISTINCT product_id FROM Products) AS T1
LEFT JOIN (
SELECT product_id, new_price
FROM Products
WHERE (product_id, change_date) IN (
SELECT product_id, MAX(change_date) AS last_date
FROM Products
WHERE change_date <= '2019-08-16'
GROUP BY product_id)) AS T2
ON T1.product_id = T2.product_id;
여러 풀이들을 찾아보며 with절을 활용해서 cte를 만들어 사용하는 법과
두 테이블을 유니온해버려서 답을 구하는 법 등 많은 풀이를 보았지만 나는 아직 활용 능력이 부족한 것 같다.
문제 설명
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와
이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다.
실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
*제한사항
absolutes의 길이는 1 이상 1,000 이하입니다.
absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
signs의 길이는 absolutes의 길이와 같습니다.
signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을,
그렇지 않으면 음수임을 의미합니다.
풀이
def solution(absolutes, signs):
answer = 0
for i in range(len(absolutes)):
if signs[i]:
answer += absolutes[i]
else:
answer -= absolutes[i]
return answer
머신러닝에 대한 기초적인 개념 및 앞으로 우리가 활요할줄 알아야 하는 내용,
실제 마케팅 업계에서 쓰이는 머신러닝의 활용법 등을 설명들었다.