문제 출저https://www.acmicpc.net/problem/29792 문제 풀이n개의 캐릭터 중 m개를 선택하여 보스를 잡아서 메소의 최대값을 구해야 합니다. n개의 케릭터는 각각 데미지가 있습니다. m개를 선택할 때 대미지가 큰 순서대로 선택했습니다. PriorityQueue 사용 보스는 체력과 메소가 주어집니다.한 케릭터당 사냥 시간은 15분 입니다. 대미지는 1초당 대미지 입니다. 즉 900초의 시간이 주어집니다. 900초 길이를 가진 1차원 int 배열을 만들어 배낭 알고리즘으로 최댓값을 구하고 더합니다.이 떄 입력값의 범위가 크므로 long을 사용합니다. 배낭 알고리즘은 현재 보스를 선택했을 때랑 선택하지 않을 때를 비교하여 더 큰 값을 dp인 1차원 배열에 저장하여 최대값을 구하..
문제 출저 문제 풀이잘못된 트윗의 ID를 찾는 솔루션을 작성해야 합니다. 잘못된 트윗 ID는 문자수가 15를 초과하는 것 입니다.where 문에서 15자를 초과하는 것을 찾습니다. SQLselect tweet_idfrom Tweets where char_length(content) > 15
문제 출저https://school.programmers.co.kr/learn/courses/30/lessons/131697 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이PRODUCT 테이블에서 판매 중인 상품 가장 높은 판매가를 출력해야 합니다. MAX 함수를 이용하여 가장 큰 값을 구합니다. SQLSELECT MAX(PRICE) AS MAX_PRICE FROM PRODUCT
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.lang.reflect.Array;import java.util.Arrays;import java.util.PriorityQueue;import java.util.StringTokenizer;/*나는 기말고사형 인간이야https://www.acmicpc.net/problem/23254 */public class Main { static int n; // 시간 static int m; // 과목 static int[] basic; // 기본 점수 static PriorityQueue growths; // ..
문제 출저https://leetcode.com/problems/article-views-i/description/?envType=study-plan-v2&envId=top-sql-50 문제 풀이자신의 작품을 본 작가 id를 출력해야 합니다 where 사용하여 author_id와 viewer_id 같은 것을 선택합니다. 중복을 제거하기 위해 distinct를 사용합니다. order by로 id를 정렬합니다. SQLselect distinct author_id as idfrom Viewswhere author_id = viewer_idorder by id
문제 출저 문제 풀이손님들이 원하는 초밥이 있고 초밥들이 순서대로 제공합니다. 손님 번호가 빠른 손님부터 초밥을 먹습니다. 각 손님이 초밥을 몇 개 먹는지 구해야 합니다. 우선순위 큐로 문저를 풀었습니다. 우선순위 큐를 2개 사용했습니다. 첫 번째 우선순위 큐는 (초밥 번호, 손님 번호)로 이루어져 있습니다. 초밥 번호가 작은 순으로 나오면 초밥 번호가 같다면 손님 번호가 작은게 나옵니다.두 번째 우선순위 큐는 제공되는 초밥을 담은 것으로 작은 번호 먼저 나옵니다. 초밥을 제공하는 우선순위큐에서 꺼내서 제공합니다. 초밥 번호가 같으면 첫 번째 큐에서 꺼내고 손님 번호에 해당하는 배열에 +1을 합니다. 만약 제공하는 초밥이 첫 번째 우선순위큐의 초밥 보다 크다면 큐를 계속 큐를 비워냅니다. 소..
문제 출저https://leetcode.com/problems/big-countries/description/?envType=study-plan-v2&envId=top-sql-50 문제 풀이면적이 3000000 이상 인구수가 25000000 이상인 나라의 이름, 인구, 면적을 출력해야 합니다.해당 조건에 맞게 where문을 사용합니다. 문제 풀이select name, population, area from World where area >= 3000000 or population >= 25000000
문제 출저https://school.programmers.co.kr/learn/courses/30/lessons/301651 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이각 세대별 자식이 없는 대장균의 ID를 구해야 합니다. 재귀 WITH인 WITH RECURSIVE를 사용합니다. WITH RECURSIVE의 형태는 초기값과 재귀 조인의 UNION ALL 한 형태로 사용합니다. WITH RECURSIVE를 통해 세대별 대장균의 자식을 구한 다음 LEFT JOIN으로 부모와 자식을 조인합니다. 그 후 자식의 PARENT_ID가 NULL인 것을 출..
문제 출저https://www.acmicpc.net/problem/2073 문제 풀이파이프를 선택하여 길이 d인 파이프를 만들려 합니다. 파이프는 길이와 용량이 주어집니다. 전체 파이프의 용량은 가장 작은 용량이 됩니다. 이 때, 용량이 가장 클 때를 구해야 합니다. dp, 배낭 문제로 문제를 풀었습니다. 전체 용량이 가장 큰 경우를 구해야 합니다. 파이프(길이 : l, 용량 : c)전체 길이를 d로 봤을 때 각각의 파이프 경우마다 전체 길이 d부터 현재 탐색하는 파이프의 길이 l까지 탐색합니다. 이미 있는 파이프의 용량(dp[j-l])과 현재 탐색하는 중인 파이프의 용량(c)을 비교하여 더 작은 것을 선택합니다. 이것을 기존에 용량(dp[j])와 비교하여 더 큰 것을 dp[j]에 저장하여 정..
문제 출저https://leetcode.com/problems/find-customer-referee/description/?envType=study-plan-v2&envId=top-sql-50 문제 풀이아이디가 2가 아닌 행들을 조회해야 합니다. where 절을 사용하여 2가 아닌 것을 추가합니다. 또한 null 인 것도 조회해야 하므로 is null을 사용합니다. SQLselect namefrom Customer where referee_id is null or referee_id 2 # != 랑 동일
문제 출저https://school.programmers.co.kr/learn/courses/30/lessons/301650 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이3세대 대장균의 ID를 출력해야 합니다. 3세대를 알기 위해서는 2번의 JOIN을 거쳐야 합니다.WITH을 사용하여 2세대를 구하고 이 WITH을 다시 사용하여 3세대를 구합니다. SQLWITH GENTWO AS ( SELECT CHILD.ID AS ID FROM ECOLI_DATA AS CHILD JOIN ECOLI_DATA AS PARENT ON CH..
문제 출저https://www.acmicpc.net/problem/29704 문제 풀이배낭 문제로 풀었습니다. 벌금을 최소화하기 위해서는 벌금이 높은 문제들을 풀어야 합니다. 다음과 같은 점화식이 나옵니다. for (int i = t; i >= 0; i--) { if (i 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;/*벼락치기https://www.acmicpc.net/problem/29704 */public class Main { static int n; static in..