✔ 사촌[백준 9489]코드 구현하기/* * 문제 분석하기 * : k와 조부모는 같으면서 부모는 다른 노드들의 개수를 찾도록 함 *//* * 손으로 풀어보기 * 1. 각 노드에 따른 부모 노드의 인덱스 위치를 저장하도록 함 * 2. k와 조부모는 같으면서 부모는 다른 노드들의 개수를 찾도록 함 * 3. 사촌의 수를 출력 * 4. n과 k가 둘 다 0일 경우 종료 *//* * 9489) 사촌 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int n, k; static int[] node; // node(노드의 정보를 저장하는 배열) ..
✔ JOIN, UNION두 테이블 결합하기[SolveSql join]/* SELECT : 선수 ID FROM : events, records 테이블 WHERE : 종목 이름이 Golf */SELECT DISTINCT R.athlete_idFROM events E JOIN records R ON E.id = R.event_idWHERE E.sport = 'Golf'쇼핑몰의 일일 매출액[SolveSql olist-daily-revenue]/* SELECT : 매출 날짜와 해당 날짜의 매출액 FROM : olist_orders_dataset, olist_order_payments_dataset 테이블 WHERE : 2018년 1월 1일 이후 GROUP BY : 날짜 별 ORDER BY : 매출 날짜 기..
✔ SELECT모든 데이터 조회하기[SolveSql select-all]/* SELECT : 모든 데이터 FROM : points 테이블*/SELECT *FROM points일부 데이터 조회하기[SolveSql select-where]/* SELECT : 데이터 FROM : points 테이블 WHERE : quartet 컬럼의 값이 I*/SELECT *FROM pointsWHERE quartet = 'I'데이터 정렬하기[SolveSql order-by]/* SELECT : 데이터 FROM : points 테이블 WHERE : quartet 컬럼의 값이 I ORDER BY : y 컬럼의 값을 기준으로 오름차순 정렬*/SELECT *FROM pointsWHERE quartet = 'I'ORD..
✔ 문제 추천 시스템 Version 2[백준 21944]코드 구현하기/* * 문제 분석하기 * : 추천 문제 리스트를 TreeSet에 저장한 후, 명령에 따라 문제를 추천, 추가, 제거하도록 함 * 이를 위해 TreeSet의 last(), first(), ceiling(), lower() 메소드를 사용하도록 하며 * 각 알고리즘인 G에 대해서는 각 서브트리를 만들어서 알고리즘 별로 정렬해주도록 함 *//* * 손으로 풀어보기 * 1. recommend G x일 경우, * TresSet에 있는 문제들을 알고리즘 G에 따라서 분리하여 서브트리를 만든 후 TreeSet의 last(), first() 메소드를 사용해 문제 번호를 출력 * 2. recommend2 x일 경우, * Tre..
✔ 종이 조각[백준 14391]코드 구현하기/* * 문제 분석하기 * : 현재의 위치에서 자기 자신과 가로 칸을 추가해 자르거나, * 자기 자신과 세로 칸을 추가해 자르거나 * 둘 다 추가하지 않고 자기 자신만 자르는 것을 반복하여 완전 탐색하며 * 얻을 수 있는 가장 큰 점수를 구하도록 함 *//* * 손으로 풀어보기 * 1. 종이 조각의 크기에 따라 종이 조각의 수를 저장 * 2. 현재 위치의 종이 조각을 이미 사용했을 경우 넘어가도록 함 * 3. 현재 위치의 종이 조각을 사용하지 않았을 경우, * 자기 자신만 잘라 조각을 만들거나, * 자기 자신과 가로 조각을 붙여 조각을 만들거나, * 자기 자신과 세로 조각을 붙여 조각을 만드는 것을 반복하여 조각의 합을 최대로 ..
✔ 괄호 추가하기[백준 16637]코드 구현하기/* * 문제 분석하기 * : 괄호 안에 하나의 연산자만 들어가도록 하여 식의 결과의 최댓값을 구해야하므로 * 이전까지의 결과 값에 이번 연산을 할 때 괄호를 넣은 것과 넣지 않은 것의 결과를 구하도록 반복하여 최댓값을 구하도록 함 *//* * 손으로 풀어보기 * 1. 괄호를 넣지 않을 경우 이전까지의 계산 값과 현재의 수에 대해 계산하도록 함 * 2. 괄호를 넣을 경우 현재의 수와 다음 수에 대해 먼저 계산한 후 이를 이전까지의 계산 값과 계산하도록 함 * 3. 모든 연산자를 살펴봤다면 식의 결과의 최댓값을 갱신하도록 함 * 4. 이를 반복하여 괄호를 넣거나 넣지 않는 경우에 대해 모두 반복하여 최댓값을 찾아 출력함 *//* * 16637) 괄호_추..
✔ 테트로미노[백준 14500]코드 구현하기/* * 문제 분석하기 * : 각 테트로미노를 회전, 대칭시키며 종이 위에 올린 후, 가장 큰 수들의 합을 찾는 것이므로 * 한 칸을 정한 후, 이 위치에서 상하좌우로 탐색하며 테트로미노의 크기인 4만큼이 되었을 때 수를 갱신하도록 함 * 이때 보라색 테트로미노를 제외하고 나머지 테트로미노는 상하좌우 탐색을 통해 만들 수 있지만 * 보라색 테트로미노는 탐색 시 2번째 칸에서 3번째 칸으로 이동하는 것이 아니라 2번째 칸에서 다시 한 번 탐색을 하도록 함 * * 파란색 : 우우우 (좌좌좌, 하하하, 상상상 ...) * 노란색 : 하우상 (우하좌, 상우하, 좌하우 ...) * 주황색 : 하하우 (우우상, 우우하, 좌좌하, 좌좌상, 상상좌,..