본문 바로가기

전체 글109

프로그래머스 Lv1 프로그래머스 Lv1 오프라인/온라인 판매 데이터 통합하기 (MySQL) 오프라인/온라인 판매 데이터 통합하기 풀이 분명히 맞는데 라고 생각하다가 왜 틀렸는지 겨우 깨달았다. SALES_DATE를 그대로 이용하면 형식이 시분초도 나와서 틀리더라. 그래서 SELECT SALES_DATE가 아닌 아래 처럼 사용해주었다. SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE 그리고 2개의 온라인 판매, 오프라인 판매의 데이터를 합쳐야했기에 UNION ALL을 이용했다. SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ( SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUN.. 2024. 1. 31.
프로그래머스 LV1 최댓값 구하기 (MySQL) 최댓값 구하기 풀이 SELECT MAX(DATETIME) FROM ANIMAL_INS; 간단쓰. 2024. 1. 31.
프로그래머스 Lv1 가격이 제일 비싼 식품의 정보 출력하기 (MySQL) 가격이 제일 비싼 식품의 정보 출력하기 풀이 처음엔 이렇게 풀었다. SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE FROM FOOD_PRODUCT ORDER BY PRICE DESC LIMIT 1; 그런데 제일 비싼 가격이 2개 이상 있으면 위처럼 안 될 수도 있으니, 아래처럼 풀었다. SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE FROM FOOD_PRODUCT WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT) 2024. 1. 31.
프로그래머스 Lv2 카펫(python) 카펫 풀이 갈색과 노란색의 2가지 색으로 이루어진 카펫의 크기를 구해야 한다. 노란색은 실제로 카펫의 세로 2칸, 가로 2칸을 제외한 길이의 곱 면적이고, 갈색은 노란색을 제외한 즉, 테두리 면적이다. 이를 이용해서 풀이를 하니 다음과 같다. 1. 전체면적 구하기(갈색+노란색) 2. for문을 루트 면적으로 해서 정사각형이 되었을 때 길이까지를 확인하며, 곱하기 면적 중 높이를 먼저 확인하고 이를 바탕으로 너비를 구한다. 3. 구한 높이와 너비를 이용해 height width - brown == (height - 2) (width - 2) 라면 [width, height]로 반환 # 갈색과 노란색의 갯수만으로 카펫의 크기를 구해야한다. def solution(brown, yellow): area = br.. 2024. 1. 31.
백준 브론즈3 2490. 윷놀이 (python) 윷놀이 풀이 윷놀이 도개걸윷모를 ABCDE로 표현해야 한다. 배와 등의 개수에 따라서 다른 것을 인지하고, 이를 이용하면 된다. 배: 0, 등:1로 표현되었다. 1. 1의 개수에 따른 dictionary작성 2. sum()을 이용한 1의 개수 확인 3. 출력 한번 switch_case를 python에서 사용할 수는 없을까 해서 아래처럼 작성이라도 해봤다. # 등1 걸 C # 등2 개 B # 등3 도 A # 등4 모 E # 등0 윷 D def switch_case(value): return { 1: 'C', 2: 'B', 3: 'A', 4: 'E', }.get(value, 'D') for _ in range(3): yoot = list(map(int, input().split())) yootName = '.. 2024. 1. 31.
프로그래머스 Lv2 N개의 최소공배수 (python) N개의 최소공배수 풀이 최소공배수를 구해야 하는 문제이다. 다만 2개의 수에서 최소공배수를 구하는 것이 아닌 N개의 수에서 최소공배수를 구해야 한다. N개라고 별반 다르지 않으니 최소공배수 공식을 그대로 이용해 주었다. 1. 유클리드 호제법을 이용해 최대공약수 함수와 최소공배수 함수를 만들어준다. 2. 입력받은 리스트의 길이가 1보다 크다면 arr [0]와 arr [1]의 최소공배수를 구해서 arr [0]에 입력하고 arr [1]은 제외시킨다. 3. 2를 반복하고, 그 결과 arr의 길이가 1이 된다면, arr [0]의 값을 return 한다. def gcd(a, b): while b != 0: a, b = b, a % b return a def lcm(a, b): return a * b // gcd(a.. 2024. 1. 31.