취뽀 기록

#열심히 살자 #취업 #공부

분류 전체보기 221

[Level3] 대장균의 크기에 따라 분류하기 1

문제 설명 대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다. 다음은 실험실에서 배양한 대장균들의 정보를 담은 ECOLI_DATA 테이블입니다. ECOLI_DATA 테이블의 구조는 다음과 같으며, ID, PARENT_ID, SIZE_OF_COLONY, DIFFERENTIATION_DATE, GENOTYPE 은 각각 대장균 개체의 ID, 부모 개체의 ID, 개체의 크기, 분화되어 나온 날짜, 개체의 형질을 나타냅니다. 최초의 대장균 개체의 PARENT_ID 는 NULL 값입니다. 문제 대장균 개체의 크기가 100 이하라면 'LOW', 100 초과 1000 이하라면 'MEDIUM', 1000 초과라면 'HIGH' 라고 분류합니다. 대장균 개체의..

[프로그래머스][Level 2] 최댓값과 최솟값

문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 입출력 예 def solution(s): s_list = s.split(' ') s_list = list(map(int, s_list)) return str(min(s_list)) +' '+ str(max(s_list)) 풀이 1. 공백으로 구분되어 있으므로 공백 기준으로 split하여 s_list를 생성한다. 2..

[프로그래머스][Level 2] 짝지어 제거하기

문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. ..

[SQL][프로그래머스] 저자 별 카테고리 별 매출액 집계하기

문제 설명 다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(BOOK), 저자 정보(AUTHOR) 테이블입니다. BOOK 테이블은 각 도서의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다. 문제 2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해주세요. 2022년 1월의 도서 별 총 매출액은 도서 ID 가 1 인 도서가 총 3권 * 10,000원 = 30,000원, 도서 ID 가 ..

[python] 스포츠 센터 데이터 분석 ①

스포츠 센터에는 센터를 언제든 사용할 수 있는 종일 회원, 낮에만 사용할 수 있는 주간 회원, 밤에만 사용할 수 있는 야간 회원으로 3종류의 회원 구분이 존재 일반적으로 입회비가 존재하지만, 비정기적으로 입회비 반액 할인이나 입회비 무료 행사를 해서 신규회원을 늘리고 있음 월말까지 신청하면 그 다음 달 말에 탈퇴 처리 취급할 데이터 종류 ① use_log.csv - 센터 이용 이력, 회원이 센터를 이용하면 이용일이 시스템에 자동 입력됨 - 2018년 4월 ~ 2019년 3월까지 1년의 데이터 ② customer_master.csv - 2019년 3월 말 시점의 회원 데이터, 이전에 탈퇴한 회원도 포함되어 있음 ③ class_master.csv - 회원 구분 데이터(종일, 주간, 야간) ④campaign_..

[프로그래머스][Level 2] 전화번호 목록

문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 예시 풀이 # 풀..

[프로그래머스][Level 2] 피보나치 수

문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항 n은 2 이상 100,000 이하인 자연수입니다. 예시 풀이 # 풀이1 def solution(num): a, b = 0, 1 for i in range(nu..

[SQL][프로그래머스] 주문량이 많은 아이스크림들 조회하기

문제 설명 다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF 테이블과 7월의 아이스크림 주문 정보를 담은 JULY 테이블입니다. FIRST_HALF 테이블 구조는 다음과 같으며, SHIPMENT_ID, FLAVOR, TOTAL_ORDER는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. FIRST_HALF 테이블의 기본 키는 FLAVOR입니다. FIRST_HALF테이블의 SHIPMENT_ID는 JULY테이블의 SHIPMENT_ID의 외래 키입니다. JULY 테이블 구조는 다음과 같으며, SHIPMENT_ID, FLAVOR, TOTAL_ORDER 은 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 ..

[SQL][프로그래머스] 우유와 요거트가 담긴 장바구니

문제 설명 CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가격을 나타냅니다. 데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 예시 풀이 ## 풀이1 # 우유와 요거트를 구매한 카트id 추출 WITH T1 AS (SELECT cart_id, name, price FROM cart_products WHERE name..

[알고리즘] 깊이우선탐색(DFS)과 너비우선탐색(BFS)

1. 깊이 우선 탐색(Depth-First Search) : 최대한 깊이 내려간 뒤, 더이상 깊이 갈 곳이 없을 경우 옆으로 이동(백트랙이라고도 불림) - 재귀를 사용하는 경우가 많음 - 오델로, 장기, 바둑 등 대전형 게임에 필수로 사용 - 모든 답을 찾지 않고 정해진 깊이까지 탐색하는 방법도 자주 사용됨 - 너비 우선 탐색에 비해 메모리 사용량을 줄일 수 있음 1. 모든 노드를 방문하고자 하는 경우에 이 방법을 선택 2. 깊이 우선 탐색(DFS)이 너비 우선 탐색(BFS)보다 좀 더 간단함 3. 검색 속도 자체는 너비 우선 탐색(BFS)에 비해서 느림 DFS는 스택이라는 자료구조를 활용해서 구현된다. 스택은 LIFO(Last-In-First-Out) 방식을 사용한다. (후입선출) DFS 알고리즘은 특..