ANIMAL_INS 테이블의 모든 레코드를 ANIMAL_ID 오름차순으로 조회하는 문제이다. 모든 컬럼을 그대로 가져온다.풀이 흐름:SELECT 모든 컬럼FROM ANIMAL_INSORDER BY ANIMAL_ID 오름차순 정렬모든 컬럼을 조회할 때는 컬럼명을 일일이
다리의 길이와 무게 제한이 주어질 때, 대기 중인 트럭이 모두 다리를 건너는 데 걸리는 최소 시간을 구하는 문제이다.매 초마다 트럭은 한 칸씩 이동하며, 다리 위 트럭들의 무게 합이 제한을 초과하면 다음 트럭은 진입할 수 없다.다리는 길이가 있어서 한번에 올라갈 수 있
MEMBER_PROFILE 테이블에서 3월에 태어난 여성 회원 중 전화번호가 있는 회원의 목록을 회원 ID 오름차순으로 조회하는 문제이다. "3월에 태어난", "여성회원", "목록 출력" 이 세 가지가 곧 WHERE 조건과 SELECT 컬럼이 된다는 것을 파악하였다.
문제 설명 ANIMAL_INS 테이블에서 가장 최근에 들어온 동물의 DATETIME을 조회하는 문제이다. | 테이블 | 주요 컬럼 | |---|---| | ANIMALINS | ANIMALID, ANIMALTYPE, DATETIME, INTAKECONDITION,
두 테이블을 활용해 카테고리가 경제인 도서의 도서 ID, 저자명, 출판일을 출판일 오름차순으로 조회하는 문제이다.두 테이블 모두 AUTHOR_ID를 공통으로 갖고 있어서, 이걸 기준으로 연결할 수 있다. 수정해야 할 부분이 두 가지가 있다.첫 번째, JOIN 조건을
PRODUCT 테이블에서 가장 비싼 상품의 가격을 조회하는 문제이다.테이블주요 컬럼 - PRODUCTPRODUCT_ID, PRODUCT_CODE, PRICE문제를 읽고 테이블이 1개이므로 JOIN은 필요 없다는 걸 생각했다.다음으로 "가장 비싼 상품"이라는 표현을 SQ
두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다.입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요.제한사항1 ≤ str1, str2의 길이 ≤ 10두문자열을 입력받아 붙여서 "공백없이" 출력하면되는 문제이다.자바에서
문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면
배열에서 연속으로 나오는 같은 숫자를 제거하라 배열arr이 주어질 때, 연속하여 나타나는 같은 숫자는 하나만 남기고 제거한 뒤 배열을 반환한다input 1,1,3,3,0,1,1 -> output 1,3,0,1 input 4,4,4,3,3, -> output4,3 스택의
문제 설명 두 테이블을 활용해 상반기 총주문량이 3,000 초과이면서, 주 성분이 과일인 아이스크림의 맛을 주문량이 높은 순서대로 조회하는 문제이다. 사용 테이블은 두 가지다. 테이블주요 컬럼FIRSTHALFSHIPMENTID, FLAVOR, TOTALORDERICEC
FOOD_FACTORY 테이블에서 강원도에 위치한 공장의 ID, 이름, 주소를 공장 ID 오름차순으로 조회하는 문제이다."강원도에 위치한" 조건을 빠뜨렸다. WHERE로 주소 조건을 걸어야 한다. 강원도로 시작하는 주소를 찾아야 하므로 LIKE 연산자를 사용해야 한다
두 테이블을 활용해 2022년 10월에 작성된 게시글에 달린 댓글의 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 댓글 작성일과 게시글 제목 오름차순으로 조회하는 문제이다.두 테이블 모두 BOARD_ID를 공통으로 갖고 있어서, 이걸
USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원 수를 구하는 문제이다. 문제에는 2가지 조건이 있다. "21년에 가입한", "나이 20세 이상 29세이하" 둘다 WHERE절에 AND로 묶을 수 있다.2021년 가입 조건
ANIMAL_INS 테이블에서 모든 동물의 이름과 보호 시작일을 ANIMAL_ID 내림차순으로 조회하는 문제이다. "역순"은 내림차순을 뜻하기 때문에 ORDER BY ANIMAL_ID DESC로 나타내었다.구체적으로 정리한 풀이 흐름:SELECT NAME, DATE
ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 2번 이상 구매한 경우의 회원 ID와 상품 ID를 조회하는 문제이다. 조회 결과는 회원 ID 오름차순, 상품 ID 내림차순으로 정렬한다. USER_ID, PRODUCT_ID 조합이 2번 이상 나오는것을 구하
ECOLI_DATA 테이블에서 2번 형질을 보유하지 않으면서 1번 또는 3번 형질을 보유하는 대장균의 수를 구하는 문제이다. GENOTYPE = 13이면 1101이므로 1번, 3번, 4번 형질 보유를 의미한다.특정 형질을 갖고 있는지 확인할 때는 비트 연산자 &를 사
ANIMAL_INS 테이블에서 보호 시작 당시 상태가 아픈(Sick) 동물의 ID와 이름을 ANIMAL_ID 오름차순으로 조회하는 문제이다.첫 번째 SICK은 문자열 값이므로 반드시 따옴표로 감싸야 한다. 처음에 대문자 SICK로 제출했을때 완료표시가 떳다. 하지
문제 설명 DEVELOPER_INFOS 테이블에서 Python 스킬을 보유한 개발자의 ID, 이메일, 이름, 성을 ID 오름차순으로 조회하는 문제이다. | 테이블 | 주요 컬럼 | |---|---| | DEVELOPERINFOS | ID, EMAIL, FIRSTNA
아이템은 'ITEM_A' → 'ITEM_B'처럼 업그레이드가 가능하며, 이때 ITEM_A를 ITEM_B의 PARENT 아이템이라고 한다. ITEM_INFO 테이블과 ITEM_TREE 테이블을 활용해, 희귀도(RARITY)가 'RARE'인 아이템들의 모든 다음 업그레이드
FISH_INFO 테이블에서 잔챙이(길이 10cm 이하)의 수를 구하는 문제이다. 길이가 10cm 이하인 물고기는 LENGTH 컬럼에 NULL로 저장된다.문제를 읽고 아래처럼 흐름을 잡아보았다.잔챙이의 개수를 세야 하므로 COUNT(\*)를 사용한다.처음에 요구사항을
FISH_INFO 테이블에서 길이가 가장 큰 물고기 10마리의 ID와 길이를 길이 내림차순으로 조회하는 문제이다. 길이가 같을 경우 ID 오름차순으로 정렬한다.문제를 읽고 흐름을 잡아보았다.수정해야하는 부분첫 번째 , 10마리만 뽑아야 하므로 LIMIT 10이 필요
DOCTOR 테이블에서 흉부외과(CS) 또는 일반외과(GS) 의사의 이름, ID, 진료과 코드, 고용일자를 고용일자 내림차순, 이름 오름차순으로 조회하는 문제이다.문제를 읽고 아래처럼 흐름을 잡아보았다.수정해야 할 부분이 두 가지였다.첫 번째, HIRE_YMD를 YYY
BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서의 도서 ID와 출판일을 출판일 오름차순으로 조회하는 문제이다.문제를 읽고 아래처럼 흐름을 잡아보았다. 이전에 풀었던 3월에 태어난 여성회원 목록 출력하기에서 MONTH()를 썼던 것과 같은 패턴으
DEVELOPERS 테이블과 SKILLCODES 테이블을 활용해 Python 또는 C| 테이블 | 주요 컬럼 |\|---\|---\|| DEVELOPERS | ID, FIRST_NAME, LAST_NAME, EMAIL, SKILL_CODE || SKILLCODES |
FISH_INFO 테이블과 FISH_NAME_INFO 테이블을 활용해 BASS 또는 SNAPPER를 잡은 총 수를 구하는 문제이다.두 테이블 모두 FISH_TYPE을 공통으로 갖고 있어서, 이걸 기준으로 연결할 수 있다.문제를 읽고 아래처럼 흐름을 잡아보았다.FISH
ECOLI_DATA 테이블에서 부모의 형질을 모두 보유한 자식 대장균의 ID, 자신의 GENOTYPE, 부모의 GENOTYPE을 ID 오름차순으로 조회하는 문제이다.PARENT_ID는 부모 개체의 ID를 나타내며, 최초 개체의 PARENT_ID는 NULL이다.문제를
FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 cm 단위로 출력하는 문제이다. 출력 형식은 숫자cm (예: 50cm)이다.가장 큰 길이를 구해야 하므로 MAX(LENGTH)를 써야 한다. 이전에 풀었던 가장 비싼 상품 구하기, 최댓값 구하기와 동
FOOD_PRODUCT 테이블에서 가격이 가장 비싼 식품의 모든 정보를 출력하는 문제이다.문제를 읽고 아래처럼 흐름을 잡아보았다.WHERE절에 MAX()를 직접 쓰면 안 된다는 것을 확인하였다. MAX()는 집계함수이기 때문에 WHERE절에서 바로 사용할 수 없다."가
ANIMAL_INS 테이블에서 가장 먼저 들어온 동물의 보호 시작일을 조회하는 문제이다. "가장 먼저 들어온" = 가장 작은 날짜값 = 최솟값을 구하는 문제이다. 이전에 풀었던 가격이 제일 비싼 식품의 정보 출력하기에서 서브쿼리로 최댓값을 구하고 그 값과 같은 행을 조
ANIMAL_INS 테이블에서 중복을 제거한 동물 이름의 수를 구하는 문제이다.개수를 세야 하므로 COUNT()를 써야 한다. "중복 제거"라는 조건을 어떻게 표현할지에서 막혔다.여기서 "중복 제거"를 코드로 옮기려면 DISTINCT 키워드가 필요하다는 것을 정리하였
ANIMAL_INS 테이블에 들어온 동물의 총 수를 구하는 문제이다.전체 개수를 세야 하므로 COUNT()를 써야 한다.ANIMAL_ID를 통해 COUNT(ANIMAL_ID)로 전체 행 수를 셀 수 있다고 생각했다.그리고 NAME 컬럼으로도 구할 수 있을 것 같아서 작
ITEM_INFO 테이블에서 희귀도(RARITY)가 'LEGEND'인 아이템들의 가격 합계를 구하는 문제이다.문제를 읽고 아래처럼 흐름을 잡아보았다."가격의 총합"은 SUM() 집계함수를 사용하면 되고, RARITY = 'LEGEND' 조건을 WHERE절에 걸어서 필
ECOLI_DATA 테이블에서 연도별 대장균 크기의 편차(연도별 최대 크기 - 자신의 크기)를 구하는 문제이다. 연도 오름차순으로 정렬하고, 같은 연도 내에서는 편차 오름차순으로 정렬한다.문제를 읽고 아래 3단계로 풀이 흐름을 정리하였다.1단계 - 연도별 최대 크기 구
PRODUCT 테이블과 OFFLINE_SALE 테이블을 활용해 상품별 매출액(가격 × 판매량)의 합계를 매출액 내림차순, 상품코드 오름차순으로 조회하는 문제이다.두 테이블 모두 PRODUCT_ID를 공통으로 갖고 있어서, 이걸 기준으로 연결할 수 있다.문제를 읽고 아래
ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 활용해 보호 시작일보다 입양일이 더 빠른 동물의 ID와 이름을 보호 시작일 오름차순으로 조회하는 문제이다.두 테이블 모두 ANIMAL_ID를 공통으로 갖고 있어서, 이걸 기준으로 연결할 수 있다.문제를 읽고
FIRST_HALF 테이블과 JULY 테이블을 활용해 7월 총 주문량과 상반기 총 주문량을 합산한 값이 큰 순서대로 상위 3개의 맛을 조회하는 문제이다.문제를 읽고 아래 2단계로 풀이 흐름을 정리하였다.FIRST_HALF 테이블과 JULY 테이블을 FLAVOR 기준으
ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 활용해 아직 입양을 못 간 동물 중 보호 기간이 가장 긴 동물 3마리의 이름과 보호시작일을 보호시작일 순으로 조회하는 문제이다.문제를 읽고 아래처럼 풀이 흐름을 정리하였다.ANIMAL_INS에는 있는데 ANI
FISH_INFO 테이블과 FISH_NAME_INFO 테이블을 활용해 물고기 종류별로 가장 큰 물고기의 ID, 이름, 길이를 ID 오름차순으로 조회하는 문제이다.FISH_TYPE을 공통으로 갖고 있어서, 이걸 기준으로 연결할 수 있다.FISH_TYPE 기준으로 INN
FIRST_HALF 테이블과 ICECREAM_INFO 테이블을 활용해 성분 타입별 아이스크림 총 주문량을 총 주문량 오름차순으로 조회하는 문제이다. FLAVOR를 공통 데이터로 가지고있다. FLAVOR 기준으로 JOIN한다. TOTAL_ORDER는 FIRST_HALF
APPOINTMENT 테이블에서 2022년 5월에 예약한 환자 수를 진료과별로 조회하는 문제이다. 예약 횟수 오름차순, 같으면 진료과 코드 오름차순으로 정렬한다.MCDP_CD는 진료과 코드를 나타내며, 예를 들어 CS는 흉부외과, GS는 일반외과를 의미한다.진료과 코
배열 array와 commands가 주어질 때, commands의 각 행 \[i, j, k]에 대해 array의 i번째부터 j번째까지 자르고 정렬한 뒤 k번째 수를 구하는 문제이다.commands를 하나씩 순회하면서 \[i, j, k] 값을 꺼내기array에서 i번째~
정수 배열 numbers가 주어질 때, 원소들을 이어 붙여 만들 수 있는 가장 큰 수를 문자열로 반환하는 문제이다.처음에 내림차순 정렬로 풀고 틀렸다. 30과 3 중 어떤 게 앞에 와야 하는지 확인해보면즉 두 숫자 a, b를 이어붙였을 때 ab > ba이면 a가 앞에
ANIMAL_INS 테이블에서 이름이 없는 동물의 ID를 ID 오름차순으로 조회하는 문제이다."이름이 없다"는 조건은 이전에 풀었던 3월에 태어난 여성회원, 잔챙이 잡은 수 구하기 문제에서도 사용했던 IS NULL 패턴이다구체적으로 정리한 풀이 흐름:SELECT AN
문자열 s를 아래 규칙으로 나눌 때 총 덩어리의 수를 반환하는 문제이다.첫 글자를 기준 문자(x)로 정한다기준 문자와 같은 글자 수(same), 다른 글자 수(diff)를 센다same == diff가 되는 순간 하나의 덩어리로 자른다남은 문자열에서 다시 1번부터 반복
자동차 정보가 저장된 테이블에서 통풍시트, 열선시트, 가죽시트 중 하나 이상의 옵션이 포함된 자동차를 조회하는 문제이다.조건을 만족하는 자동차를 자동차 종류(CAR_TYPE) 별로 개수를 구한 뒤,자동차 종류(CAR_TYPE)자동차 수(CARS)를 출력하면 된다.또한
동물 보호소에 들어온 동물 정보가 저장된 테이블에서 고양이(Cat)와 개(Dog)가 각각 몇 마리 있는지 조회하는 문제이다.조건을 만족하도록동물 종류(ANIMAL_TYPE)동물 수(COUNT)를 출력하면 된다. 결과는 동물 종류(ANIMAL_TYPE)를 기준으로 오름차
동물 보호소에서 09:00부터 19:59까지 입양이 발생한 시간을 조회하는 문제이다.조건을 만족하도록입양 시각(HOUR)해당 시각의 입양 건수(COUNT)를 출력하면 된다.또한 결과는 입양 시각을 기준으로 오름차순 정렬해야 한다.DATETIME 컬럼은 날짜와 시간이 함
학생들의 정수 번호가 담긴 배열 number가 주어진다.이 중에서 서로 다른 학생 3명을 선택했을 때, 세 학생의 번호의 합이 0이 되는 경우의 수를 구하는 문제이다.세 명의 학생을 선택해야 하므로 모든 조합을 확인하면 된다.중복 없이 3명을 선택하기 위해 3중 반복문
두 정수 a와 b가 주어진다.a는 가로 길이b는 세로 길이를 의미하며, 가로가 a, 세로가 b인 직사각형 모양으로 \*(별)을 출력하는 문제이다.세로 길이만큼 반복하면서, 한 줄에 가로 길이만큼 별(\*)을 출력하면 된다.String 클래스의 repeat() 메서드를
사람들의 이름이 담긴 name 배열과 각 사람의 추억 점수가 담긴 yearning 배열이 주어진다.또한 여러 장의 사진이 담긴 photo 배열이 주어질 때,각 사진에 등장하는 사람들의 추억 점수의 합을 구하여 배열로 반환하는 문제이다.만약 사진에 있는 사람이 name
문자열 my_string과 제거할 문자 letter가 주어진다.my_string에서 letter와 같은 문자를 모두 제거한 문자열을 반환하는 문제이다.문자열을 처음부터 끝까지 한 글자씩 확인한다.현재 문자가 제거해야 하는 문자(letter)와 다르면 결과 문자열에 추가
양꼬치 1인분의 가격은 12,000원, 음료 1개의 가격은 2,000원이다.양꼬치를 10인분 주문할 때마다 음료 1개를 무료로 제공한다.양꼬치의 수 n과 음료의 수 k가 주어질 때, 지불해야 하는 총 금액을 구하는 문제이다.먼저 양꼬치 가격과 음료 가격을 모두 계산한다
각도 angle이 주어질 때, 각도의 종류에 따라 다음과 같은 값을 반환하는 문제이다.예각(0° 초과 ~ 90° 미만) → 1직각(90°) → 2둔각(90° 초과 ~ 180° 미만) → 3평각(180°) → 4if - else if - else문을 사용하여 각도의 범위
처음 세균의 수 n이 주어진다.세균은 1시간마다 2배씩 증식하며, t시간 후의 세균 수를 구하는 문제이다.세균은 매 시간마다 2배씩 증가하므로,1시간 후 → n × 22시간 후 → n × 2²3시간 후 → n × 2³...즉, t시간 후에는가 된다. 거듭제곱을 계산하기
환자의 증상 코드(code)가 주어진다.증상 코드의 마지막 4글자를 확인하여 해당하는 진료과를 출력하는 문제이다.문제에서 필요한 것은 문자열의 마지막 4글자이므로 substring() 메서드를 사용한다.substring()으로 마지막 4글자를 추출한 뒤,equals()
두 각도 angle1과 angle2가 주어질때두 각의 합을 0도 이상 360도 미만으로 출력하는 문제이다.angle1과 angle2를 더하고 360의 배수를 뺀값은 360으로 나눈 나머지값과 같다(angle1 + angle2) % 360 angle1과 angle2를 더
cards1과 cards2 배열을 순서대로 사용해서 goal 배열을 만들 수 있는지 확인하는 문제이다. 각 카드 뭉치는 순서를 바꿀 수 없고, 앞에서부터 순서대로만 사용할 수 있다. cards1과 cards2를 슬라이스해서 goal을 만드는 문제이다.goal을 앞에서부
두 정수 a와 b가 주어진다.a와 b 사이에 있는 모든 정수(두 수 포함)의 합을 구하여 반환하는 문제a와b가 같으면 그대로 반환한다.만약 a가 b보다 크다면 두 값을 서로 바꿔( swap) 작은 값부터 큰 값까지 반복문을 사용할 수 있도록 한다. 그 후 for문을 이

2022년 기준 나이(age)가 주어질 때, 출생연도를 반환하는 문제입니다.나이로 출생연도를 구하는 방법 풀이 흐름2022 - age + 1로 출생연도 계산결과 반환

두 정수 num1과 num2가 주어질 때, 같으면 1, 다르면 -1을 반환하는 문제이다. if-else문을 사용한 풀이 삼항연산자를 이용한 풀이삼항연산자의 구조는 아래와 같다.if-else 풀이삼항연산자 풀이

문자열 s가 주어질 때, 이를 정수로 변환해서 반환하는 문제이다. Integer.parseInt()는 String을 int로 변환하는 메서드이다.구체적으로 정리한 풀이 흐름:Integer.parseInt(s)로 문자열을 정수로 변환결과 반환

정수 n이 주어질 때, n의 모든 약수의 합을 반환하는 문제약수는 n을 나눴을 때 나머지가 0인 수이다. 1부터 n까지 올라가면서 n % i == 0인 경우만 합산한다.구체적으로 정리한 풀이 흐름:1부터 n까지 반복n % i == 0이면 약수 → answer에 누적

문자열 s가 올바른 괄호로 이루어져 있으면 true, 그렇지 않으면 false를 반환하는 문제이다. 스택(Stack) 자료구조를 활용하였다.( 를 만나면 스택에 push) 를 만나면 스택에서 pop (짝이 맞는 (를 제거)) 를 만났는데 스택이 비어있으면 → 짝이 없는

정수 n이 주어질 때, 각 자릿수의 합을 반환하는 문제n % 10 → 마지막 자리 수 추출n / 10 → 마지막 자리 수 제거이 두 연산을 n이 0이 될 때까지 반복한다. 구체적으로 정리한 풀이 흐름:n > 0인 동안 반복n % 10으로 마지막 자리 수 추출 후 an

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열을 반환하는 문제이다. 자릿수 더하기에서 n % 10으로 마지막 자리 수를 추출하고 n / 10으로 제거하는 패턴을 사용했다. 이 문제는 합산 대신 배열에 순서대로 저장 한다.먼저 n을 문자열로 변환해서 자릿수 길이