SQL - 20250625
·
DB/SQL
✅ 문제 요약 STATION 테이블에서가장 짧은 CITY 이름가장 긴 CITY 이름 이름 길이가 같을 경우 알파벳순으로 가장 빠른 도시를 선택각각의 문자 길이도 함께 출력 ✅ 정답 쿼리 1. 최단 도시 이름SELECT CITY, LENGTH(CITY)FROM STATION ORDER BY LENGTH(CITY), CITY ASCLIMIT 1; LENGTH(CITY)로 문자 길이 정렬같은 길이일 경우 CITY 오름차순가장 위에 오는 한 건 출력 2. 최장 도시 이름SELECT CITY, LENGTH(CITY)FROM STATION ORDER BY LENGTH(CITY) DESC, CITY ASCLIMIT 1; LENGTH(CITY) 내림차순길이가 같을 경우 CITY 알파벳순최장 도시 1건 출력
b11055. 가장 큰 증가하는 부분수열
·
Algorithm & Data Structures/BOJ
✨ 자바로 푸는 가장 큰 증가하는 부분 수열 문제 풀이 📌 문제 개요 “가장 큰 증가하는 부분 수열” 문제는 다음과 같은 조건을 만족하는 부분 수열을 찾는 문제입니다. 수열 A에서 증가하는 부분 수열 중, 합이 가장 큰 부분 수열의 합을 구하라! 즉, 단순히 길이가 아니라 합이 최대인 증가 수열을 구하는 문제입니다. 💡 예제 입력10 1 100 2 50 60 3 5 6 7 8 💡 예제 출력113→ 부분 수열: 1 + 2 + 50 + 60 = 113 (또는 1 + 100) 🛠 알고리즘 접근 방식 이 문제는 **DP(동적 계획법)**을 통해 해결할 수 있습니다. 우리는 아래와 같은 배열을 정의합니다. dp[i]: i번째 수를 마지막으로 하는 증가 수열의 최대 합 이후, 앞의 원소들과 비교하며 ..
b11057. 오르막수
·
Algorithm & Data Structures/BOJ
✨ 자바로 푸는 오르막 수 문제 풀이 📌 문제 개요 오르막 수란, 각 자릿수가 비내림차순(내림하지 않는 순서)으로 구성된 수를 말합니다.예를 들어 1234, 1123, 5555는 오르막 수입니다.321, 201과 같이 감소하는 수가 있는 경우는 오르막 수가 아닙니다. 문제 목표는길이가 N인 오르막 수의 개수를 구하는 것이며,정답은 10007로 나눈 나머지를 출력합니다. 💡 예제 입력1 💡 예제 출력10 🛠 알고리즘 접근 방식 이 문제는 DP(동적 프로그래밍) 을 사용해 해결할 수 있습니다.우리는 다음 조건을 만족하는 점화식을 세울 수 있습니다. dp[i][j] : 길이가 i이고, 마지막 자릿수가 j인 오르막 수의 개수dp[i][j] = dp[i][j+1] + dp[i-1][j]끝자리가 j 이..
b6497. 전력난
·
Algorithm & Data Structures/BOJ
✨ 자바로 푸는 전력난 문제 풀이 📌 문제 개요 “전력난” 문제는 모든 집(노드)을 전깃줄(간선)로 잇되,기존 모든 전선 설치 비용에서 최소한의 유지 비용만 남기기 위한 문제입니다. 즉, 모든 집이 연결되어야 하고최소한의 전기선만 남겨절약 가능한 비용을 구하는 것이 목표입니다. 이 구조는 전형적인 최소 신장 트리(MST) 문제입니다. 💡 예제 입력7 110 1 70 3 51 2 81 3 91 4 72 4 53 4 153 5 64 5 84 6 95 6 110 0 🛠 알고리즘 접근 방식 전체 간선 비용 합계를 구하고크루스칼 알고리즘으로 최소 신장 트리를 구성전체 비용 - MST 비용 = 절약된 전기 요금 ✅ 핵심 아이디어 간선을 비용 순으로 정렬하고,Union-Find(서로소 집합)을 통해 사이..
SQL - 20250605
·
DB/SQL
✅ 문제 요약 STATION 테이블에서CITY 컬럼의전체 행 수 - 중복 제거한 행 수의 차이 계산 즉, 중복된 CITY 이름의 개수. ✅ 정답 SQLSELECT COUNT(*) - COUNT(DISTINCT CITY)FROM STATION; 🔍 핵심 개념함수설명COUNT(*)전체 행 수COUNT(DISTINCT CITY)중복 제거된 도시 이름 개수차이 계산 -중복된 도시 이름의 수를 의미함
b11052. 카드 구매하기
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/11052 ✨ 자바로 푸는 카드 구매하기 문제 풀이 📌 문제 개요 N개의 카드를 구매해야 할 때, 각 카드팩은 카드 개수와 가격이 다르다.카드 N개를 구매하는 최대 금액을 구해야 한다.전형적인 완전 탐색 기반의 DP 최적화 문제. 💡 예제 입력4 1 5 6 7설명:카드 1개짜리 팩은 1원, 2개짜리 팩은 5원, …4개를 구매할 때 최대 금액을 구하는 문제. 🛠 알고리즘 접근 방식 dp[i]는 카드 i개를 구매할 수 있는 최대 비용을 의미.i장을 구매하려면:j장을 먼저 사고, 나머지 i-j장을 다시 구입할 수 있다.즉, dp[i] = max(dp[i], dp[i-j] + price[j]) 이때 모든 j에 대해 반복하면서 최대값 갱신...
SQL - 20250604
·
DB/SQL
✅ 문제 요구 요약 CITY 테이블에서COUNTRYCODE = 'USA' (미국 도시)POPULATION > 100000 (인구 10만 초과)모든 컬럼 조회 ✅ 정답 SQLSELECT *FROM CITYWHERE POPULATION > 100000 AND COUNTRYCODE = 'USA'; 🔍 참고 포인트 SELECT * : 모든 컬럼 조회WHERE절 조건 2개는 AND로 연결VARCHAR2, NUMBER 등 타입은 Oracle 기준 표현이지만, SQL 로직에는 영향 없음
b2193. 이친수
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/2193 ✨ 자바로 푸는 이친수 문제 풀이 📌 문제 개요 백준 2193번 “이친수” 문제는 특별한 조건을 가진 이진수의 개수를 세는 문제입니다. N자리 이친수란?0으로 시작하지 않음1이 두 번 연속으로 나올 수 없음 N자리 이친수가 총 몇 개 있는지 구하는 문제로, **DP(동적 계획법)**을 이용해 해결할 수 있습니다. 💡 예제 입력3 예제 출력2가능한 이친수: 100, 101 🛠 알고리즘 접근 방식 이 문제는 피보나치 수열과 유사한 점화식을 갖습니다. dp[i] = i자리 이친수의 개수N자리 이친수는N-1자리 이친수에 0 추가N-2자리 이친수에 10 추가 단, 연속된 1이 안 되도록 조건이 자연스럽게 반영됩니다. ✅ 핵심 아이..
b14501. 퇴사
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/14501 ✨ 자바로 푸는 퇴사 문제 풀이 📌 문제 개요 백준 14501번 “퇴사” 문제는 퇴사를 앞둔 상담원이 남은 N일 동안 최대한 많은 수익을 올릴 수 있도록 상담 일정을 최적으로 조정하는 DP(동적 계획법) 문제입니다. 각 날짜별로 상담을 진행할 경우 소요되는 일수와 받을 수 있는 보상이 주어지며, 퇴사 전까지 끝나는 상담만 수행할 수 있습니다. 💡 예제 입력73 105 201 101 202 154 402 200 예제 출력45 🛠 알고리즘 접근 방식 dp[i]는 i일에 얻을 수 있는 최대 수익을 의미합니다.각 날짜 i에서 상담을 할 수 있다면, i + days[i]일에 dp[i] + pays[i]를 반영합니다.매일 상담을 하지..
b11062. 카드 게임
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/11062 ✨ 자바로 푸는 카드 게임 문제 풀이 📌 문제 개요 백준 11062번 “카드 게임” 문제는양 끝에서 카드를 번갈아 가져가는 두 플레이어가 있을 때, 첫 번째 플레이어가 얻을 수 있는 최대 점수를 계산하는 문제입니다. 이 문제는 두 사람 모두 최선의 선택을 할 때, 나의 점수를 최대화할 수 있는 방법을 찾아야 하므로,전형적인 DP(다이나믹 프로그래밍) 문제입니다. 💡 예제 입력144 7 2 9 ✅ 예제 출력13 🛠 알고리즘 접근 방식 구간 [s, e]에서 플레이어가 차례일 때,최적의 선택을 했을 때 얻을 수 있는 점수를 dp[s][e]로 정의합니다.합계 - 상대방 점수 방식으로 현재 플레이어 점수를 계산합니다.prefix[..