Firefly Pointer 궁금하신 점이 있다면 댓글로 남겨주세요.(2023년~ 노션으로 이동) — 궁금하신 점이 있다면 댓글로 남겨주세요.(2023년~ 노션으로 이동)
전체 글

전체 글

    [Programmers] no59045: 보호소에서 중성화한 동물

    [Programmers] no59045: 보호소에서 중성화한 동물

    문제 -- 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. -- 보호소에 들어올 당시에는 중성화되지 않았지만, -> ANIMAL_INS -> SEX_UPON_INTAKE (Intact Male, Intact Female) -- 보호소를 나갈 당시에는 중성화된 -> ANIMAL_OUTS -> SEX_UPON_OUTCOME (Spayed Female, Neutered Male) -- 동물의 아이디와 생물 종, 이름을 조회 -- 아이디 순으로 조회 나의 코드 -- 출력할 컬럼 선정 SELECT INS.ANIMAL_ID, INS.ANIMAL_TYPE, INS.NAME -- 테이블 선정 및 테이블 JOIN FROM ANIMAL_INS INS INNER JOIN ANIMAL_OUTS OUTS ON IN..

    [Programmers] no59413: 입양 시각 구하기(2)

    [Programmers] no59413: 입양 시각 구하기(2)

    문제 -- 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. -- 0시부터 23시까지, -- 각 시간대별로 입양이 몇 건이나 발생했는지 조회 -- 결과는 시간대 순으로 정렬 풀이방법 1. SET함수로 변수선언하여 0부터 23까지의 시간대를 갖는 테이블을 생성 * 이 과정이 없으면, COUNT 값이 0인 LOW를 표시할 수 없다 2. COUNT 컬럼의 경우, 서브쿼리를 이용해 구하며, 이때 기준은 HOUR 변수로 WHERE로 필터링 3. 컬럼을 만들어 두었으므로, 따로 정렬하지 않아도 자도 오름차순 정렬됨 나의 코드 -- SET @을 이용해 변수선언 SET @HOUR = -1; -- 변수를 이용해 0부터 23까지의 테이블 LOW를 만들어줌 -- COUNT는 기존 테이블에서 시간값이 @..

    [백준] no11727: 2×n 타일링 2

    [백준] no11727: 2×n 타일링 2

    문제 Input 채울 길이 N Output 위의 1*2, 2*1, 2*2 세 가지 모양의 블록을 이용해 N*2의 블록을 채우는 경우의 수를 10007로 나누어 나머지를 출력 조건 1 3 3 -> 5 4 -> 11 5 -> 21 6 -> 43 7 -> 85 8 -> 171 ... N -> (N-1번째) + (N-2번째)*2 풀이방법 N번째 경우의 수 = (N-1번째 경우의 수) + (N-2번째 경우의 수)*2 나의 코드 1. Int형 배열 사용 [14428kb, 128ms] public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)..

    [Programmers] no62284: 우유와 요거트가 담긴 장바구니

    [Programmers] no62284: 우유와 요거트가 담긴 장바구니

    문제 -- 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 -- 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회 -- 결과는 장바구니의 아이디 순 풀이방법 1. INNER JOIN을 이용한 방법 2. SELF JOIN을 이용한 방법 나의 코드 1. INNER JOIN을 이용한 방법 [가독성이 제일 좋은 것 같다] -- 중복된 아이디를 제거하기 위해 DISTINCT 적용 SELECT DISTINCT MILK.CART_ID -- 아래 두 테이블을 조인함으로써 두 값을 같이 가지는 LOW를 선택가능 -- MILK만 필터링한 테이블 FROM (SELECT CART_ID, NAME FROM CART_PRODUCTS WHERE NAME = "Milk") AS MILK -- YOGUR..

    [Programmers] no131116: 식품분류별 가장 비싼 식품의 정보 조회하기

    [Programmers] no131116: 식품분류별 가장 비싼 식품의 정보 조회하기

    문제 -- FOOD_PRODUCT 테이블에서 -> SELECT -- 식품분류별로 가격이 제일 비싼 식품의 -> RANK = 1 -- 분류, 가격, 이름을 조회 -> SELECT -- 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력 -> WHERE -- 결과는 식품 가격을 기준으로 내림차순 정렬 -> ORDER BY 풀이방법 1. RANK 함수를 이용한 방식 -- 핵심 문법 RANK() OVER(PARTITION BY CATEGORY ORDER BY PRICE DESC) AS FOOD_RANK : RANK()를 이용해 FOOD_RANK컬럼을 만들거 줄 것이며, PARTITION BY을 이용해 랭킹매길 그룹조건을, ORDER BY를 이용해 랭킹 순위 판정 기준을 세팅 * PARTITI..

    [Programmers] no131117: 5월 식품들의 총매출 조회하기

    [Programmers] no131117: 5월 식품들의 총매출 조회하기

    문제 -- FOOD_PRODUCT와 FOOD_ORDER 테이블에서 -> FROM & JOIN -- 생산일자가 2022년 5월인 식품들의 -> WHERE -- 식품 ID, 식품 이름, 총매출을 조회 -> SELECT -- 이때 결과는 총매출을 기준으로 내림차순 정렬 -> ORDER BY -- 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬 -> ORDER BY 나의 코드 -- 출력할 컬럼값 선택 SELECT FP.PRODUCT_ID, FP.PRODUCT_NAME, -- '주문의 양 * 주문가격 = 총 매출'로 계산할 것이며, GROUP BY에서 기준을 제품ID로 지정 SUM(FO.AMOUNT * FP.PRICE) AS TOTAL_SALES -- 테이블 선택 및 JOIN 부분 FROM FOOD_PRODU..

    [Programmers] no131118: 서울에 위치한 식당 목록 출력하기

    [Programmers] no131118: 서울에 위치한 식당 목록 출력하기

    문제 -- REST_INFO와 REST_REVIEW 테이블에서 -> FROM, JOIN -- 서울에 위치한 식당들의 WHERE -- 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회 -> SELECT -- 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 -> ROUND, 2 [이게 핵심] -- 결과는 평균점수를 기준으로 내림차순 정렬 -> ORDER BY -- 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬 -> ORBER BY 풀이방법 핵심함수 : ROUND(AVG()) + GROUP BY() 나의 코드 방법 1 : REVIEW 테이블을 JOIN하기 전에 SCORE를 구해서 JOIN SELECT RI.REST_ID, RI.REST_NAME, RI.FOOD_TYPE, ..

    [Programmers] no131124: 그룹별 조건에 맞는 식당 목록 출력하기

    [Programmers] no131124: 그룹별 조건에 맞는 식당 목록 출력하기

    문제 풀이방법 1. RANK() 함수 사용 RANK() OVER(ORDER BY 랭킹_조건) AS 컬럼명 -- 즉, 특정 테이블에서 특정 조건에 맞춰 RANK 값을 갖는 컬럼을 만드는 함수 -- 예시: -- INNER JOIN ( -- SELECT JOIN_공통컬럼, RANK() OVER(ORDER BY COUNT(식별자) DESC) AS 컬럼명 -- FROM 테이블 RR -- GROUP BY 식별자 -- ) AS RRR ON RRR.공통컬럼 LIKE RR.공통컬럼 1. 서브쿼리로 REST_REVIEW 테이블에서 각 MEMBER_ID에 대해 빈도수를 COUNT하여, RANK 컬럼 만들어줌 2. 이 때, MEMBER_ID도 같이 엮어줘야 JOIN이 가능하므로, MEMBER_ID도 SELECT하여 JOIN ..

    [백준] no10026: 적록색약

    [백준] no10026: 적록색약

    문제 Input 1. 첫 째줄에 맵의 크기 2. 둘 째줄부터 순차적으로 색상값으로 이루어진 문자열 * 이때, 구분을 위한 공백이 없으므로 StringTokenizer는 불가. 그냥 String.split사용 Output 일반일 경우와 색약일 경우를 공백 하나로 나누어 출력 * 이때, Writer보단 StrngBuilder가 효율이 좋음 문제 링크 : https://www.acmicpc.net/problem/10026 원리 1. BFS를 이용한 상하좌우 탐색 2. 두 가지 케이스로 나누어 탐색 동시진행 * 필요시 색상을 나눠서 각각 count 가능 풀이방법 /** * 1. BFS 탐색하되, 일반과 색약일 때 두 가지 탐색 동시진행 * 2. 이중 반복으로 순차적으로 순회하되, 방문한 곳은 아님 * 3. 첫 ..