프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krSELECT CATEGORY, SUM(SALES) TOTAL_SALESFROM BOOK B JOIN BOOK_SALES BS ON B.BOOK_ID = BS.BOOK_IDWHERE BS.SALES_DATE BETWEEN '2022-01-01' AND '2022-01-31'GROUP BY CATEGORYORDER BY CATEGORY왜 이렇게 풀었을까? 2022년 1월의 카테고리별 도서 판매량을 계산하기 위해 두 테이블을 BOOK_ID를 기준으로 JOIN(INNER JOIN)했습니다.이후 WHERE 절을 이용해 2022년 1월에 해당하는 데이터만 필터링하였고,..
분류 전체보기
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krSELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE, CASE WHEN OUT_DATE IS NULL THEN '출고미정' WHEN OUT_DATE 왜 이렇게 풀었을까?CASE 구문을 통해서 OUT_DATE가 NULL인 데이터들은 출고미정으로, OUT_DATE가 22년 5월 1일 전일 경우에는 출고가 완료된 상태로, 이외에는 대기 상태로 지정해주었습니다.또 '%Y-%m-%d' 형식으로 날짜를 출력해주어야했기에 DATE_FORMAT 함수를 이용해서 ..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krSELECT INS.NAME, INS.DATETIMEFROM ANIMAL_INS INS LEFT JOIN ANIMAL_OUTS OUTSON INS.ANIMAL_ID = OUTS.ANIMAL_IDWHERE OUTS.ANIMAL_ID IS NULLORDER BY INS.DATETIME ASCLIMIT 3;왜 이렇게 풀었을까?Left Join을 사용하여 ANIMAL_INS에 있는 동물 중 ANIMAL_OUTS에 없는 데이터를 필터링해냈습니다.또 WHERE 조건에 있는 IS NULL 조건으로 입양되지 않은 동물을 식별할 수 있었습니다.또한 보호 시작일 순..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krSELECT E1.ID, E1.GENOTYPE AS GENOTYPE, E2.GENOTYPE AS PARENT_GENOTYPEFROM ECOLI_DATA E1 JOIN ECOLI_DATA E2 ON E1.PARENT_ID = E2.IDWHERE (E1.GENOTYPE & E2.GENOTYPE) = E2.GENOTYPEORDER BY E1.ID ASC;왜 이렇게 풀었을까?Self Join으로 부모 ID와 자신의 ID가 같은 데이터들을 고른 뒤,비트 연산 중 AND 연산(E1.GENOTYPE & E2.GENOTYPE)의 결과를 부모의 형질과 비교..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef collatz_sequence(k): sequence = [k] while k > 1: if k % 2 == 0: k //= 2 else: k = 3 * k + 1 sequence.append(k) return sequencedef calculate_areas(sequence): areas = [] for i in range(len(sequence)-1): x0, x1 = i, i+1 y0, y1..
👉🏻 24444번: 알고리즘 수업 - 너비 우선 탐색 1import sys; input=sys.stdin.readlinefrom collections import deque, defaultdictdef bfs(graph, start, visited): queue = deque([start]) visited[start] = 1 order = 2 while queue: node = queue.popleft() for neighbor in graph[node]: if visited[neighbor] == 0: visited[neighbor] = order queue.append(neigh..
👉🏻 2303번: 숫자 게임import sys; input=sys.stdin.readlinefrom itertools import combinationsn = int(input())max_scores = []for person in range(1, n+1): cards = list(map(int, input().split())) max_score = 0 for combo in combinations(cards, 3): score = sum(combo) % 10 max_score = max(max_score, score) max_scores.append((max_score, person))winner = max(max_scores, key=l..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfrom collections import dequedef bfs(graph, start): distance = {node: float('inf') for node in graph} distance[start] = 0 queue = deque([start]) while queue: current_node = queue.popleft() for neighbor_node in graph[current_node]: if distance[neighbor_node] == float('inf'):..