문제 출저 https://www.acmicpc.net/problem/2310 2310번: 어드벤처 게임 입력은 여러 개의 미로로 주어진다. 각 미로의 첫 줄에는 미로의 방 수를 나타내는 정수 n(1 ≤ n ≤ 1000)이 주어진다. 다음 n 줄에는 각 방의 정보가 주어진다. 각 방의 정보는 방의 내용물을 나타 www.acmicpc.net 문제 어드벤처 게임을 하던 중, 1부터 n까지의 번호가 붙은 방을 지나가야 하는 마법의 미로를 마주쳤다. 각 방 안에는 번호가 붙은 문이 있을 수 있고, 각 문은 해당하는 번호의 방으로 통한다. 방 안에는 레프리콘이나 트롤이 있을 수도 있다. 레프리콘이 있는 방에 들어가면 레프리콘은 모험가의 소지금이 일정 양 이하로 떨어지지 않게 채워준다. 레프리콘은 모험가의 소지금이 ..
문제 출저 https://school.programmers.co.kr/learn/courses/30/lessons/293261 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 조회 : 아이디, 이름, 길이 조인 : FISH_TYPE 조건 : 종류별 대어를 서브 쿼리를 통해 찾는다. 서브쿼리는 FISH_TYPE으로 그룹 지은 다음 FISH_TYPE, MAX(LENGTH)를 반환한다. 정렬 : 아이디 SQL SELECT F.ID, FN.FISH_NAME, F.LENGTH FROM FISH_INFO AS F JOIN FISH_NAME_INFO AS F..
문제 출저 https://school.programmers.co.kr/learn/courses/30/lessons/151136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 조회 : 평균 일일 대여 요금 (소수 첫 번째 자리에서 반올림) ROUND, AVG 사용 조건 : 자동차 종류 = SUV SQL /* 조회 : 평균 일일 대여 요금 (소수 첫 번째 자리에서 반올림) 조건 : 자동차 종류 = SUV */ SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR WHE..
문제 출저 https://www.acmicpc.net/problem/16562 16562번: 친구비 첫 줄에 학생 수 N (1 ≤ N ≤ 10,000)과 친구관계 수 M (0 ≤ M ≤ 10,000), 가지고 있는 돈 k (1 ≤ k ≤ 10,000,000)가 주어진다. 두번째 줄에 N개의 각각의 학생이 원하는 친구비 Ai가 주어진다. (1 ≤ Ai ≤ 10, www.acmicpc.net 문제 풀이 문제 19학번 이준석은 학생이 N명인 학교에 입학을 했다. 준석이는 입학을 맞아 모든 학생과 친구가 되고 싶어한다. 하지만 준석이는 평생 컴퓨터랑만 대화를 하며 살아왔기 때문에 사람과 말을 하는 법을 모른다. 그런 준석이에게도 희망이 있다. 바로 친구비다! 학생 i에게 Ai만큼의 돈을 주면 그 학생은 1달간 ..
문제 출저 https://school.programmers.co.kr/learn/courses/30/lessons/132203 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 조회 조건 조회 : 의사 이름, 의사 ID, 진료과, 고용일자(일자는 항상 형식에 주의) 조건 : 진료과 = CS OR GS 정렬 : 고용일자 내림차순, 이름 오름차순 SQL /* 조회 : 의사 이름, 의사 ID, 진료과, 고용일자 조건 : 진료과 = CS OR GS 정렬 : 고용일자 내림차순, 이름 오름차순 */ SELECT DR_NAME, DR_ID, MCDP_CD, D..
문제 출저 https://school.programmers.co.kr/learn/courses/30/lessons/133024 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 상반기 판매된 아이스크림의 맛을 총 주문량, 출하번호를 기준으로 조회해야 합니다. 조건 총 주문량 기준 내림차순 : TOTAL_ORDER DESC 출하 번호 기준 오름차순 : SHIPMENT_ID SQL SELECT FLAVOR FROM FIRST_HALF ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID
문제 출저 https://school.programmers.co.kr/learn/courses/30/lessons/131120 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 MEMBER_PROFILE 테이블을 통해 값을 조회해야 한다. 조건 생일 3월 : MONTH(DATE_OF_BIRTH) = 3 여성 회원 : GENDER = 'W' 전화번호 NULL 출력 제외 : TLNO IS NOT NULL 회원ID 오름차순 : MEMBER_ID 조건에 맞게 SQL을 작성합니다. SQL SELECT MEMBER_ID, MEMBER_NAME, GENDER,..
SQL SQL 동작 순서, 9개 FROM → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT, OFFSET NULL IFNULL NULL일 때 어떤 것을 가져올지 설정합니다. IFNULL(alias, name) alias 가 null 이면 name 을 출력한다. IS NULL WHERE 절에 사용합니다. NULL 인 것을 선택합니다. WHERE NAME IS NULL IS NOT NULL WHERE 절에 사용합니다. NULL이 아닌 것을 선택합니다. WHERE NAME IS NOT NULL NULL AS 특정 열이나 값을 NULL로 명시적으로 지정한다. 그 결과에 별칭을 부여할 때 사용한다. UNION, JOIN 같은 연산을..
문제 출저 https://www.acmicpc.net/problem/3980 3980번: 선발 명단 각각의 테스트 케이스에 대해서, 모든 포지션의 선수를 채웠을 때, 능력치의 합의 최댓값을 한 줄에 하나씩 출력한다. 항상 하나 이상의 올바른 라인업을 만들 수 있다. www.acmicpc.net 문제 풀이 11명의 축구 선수들은 각각의 포지션의 점수가 있습니다. 11명의 선수들을 포지션을 배치했을 때 가장 큰 점수를 구해야 합니다. 백트래킹으로 풀었습니다. 모든 경우를 계산하여 가장 큰 값을 구했습니다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util..
문제 출저 https://www.acmicpc.net/problem/15661 15661번: 링크와 스타트 첫째 줄에 N(4 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에 S가 주어진다. 각 줄은 N개의 수로 이루어져 있고, i번 줄의 j번째 수는 Sij 이다. Sii는 항상 0이고, 나머지 Sij는 1보다 크거나 같고, 100 www.acmicpc.net 문제 풀이 백트래킹을 통해 팀을 정합니다. 각 팀의 능력치를 합해서 최소값을 구합니다. 소스 코드 package baekjoon.year24.month3.day1120.day12; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader..
문제 출저 https://www.acmicpc.net/problem/9084 9084번: 동전 우리나라 화폐단위, 특히 동전에는 1원, 5원, 10원, 50원, 100원, 500원이 있다. 이 동전들로는 정수의 금액을 만들 수 있으며 그 방법도 여러 가지가 있을 수 있다. 예를 들어, 30원을 만들기 위해서는 www.acmicpc.net 문제 풀이 동전의 종류 n개와 동전으로 만들어야 할 금액 m이 주어집니다. 주어진 동전으로 금액 m을 만들 경우의 수를 구해야 합니다. DP를 통해 풀었습니다. 크기가 m+1인 1차원 배열을 만듭니다. dp = new int[m+1] 이 dp 배열은 0부터 m까지 금액을 만들 수 있는 경우의 수를 저장합니다. dp[0] 인 0원은 동전을 하나도 안 사용하는 방법만 있으니..
문제 출저 https://www.acmicpc.net/problem/13398 13398번: 연속합 2 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 풀이 수열에서 연속하는 몇 개의 수를 선택해 가장 큰 합을 구해야 한다. 이 때, 한 개의 수는 선택하지 않아도 된다. DP를 이용하여 문제를 풀었습니다. 다만 숫자를 하나 뺄 때, 빼지 않을 때 2가지 경우의 수를 염두해야 합니다. dp = new int[n][2]; 0은 빼지 않았을 경우, 1은 뺀 경우입니다. dp[n][0] 일 때는 뻰 경우 입니다. 전의 값(i - 1)과 수열..