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[..
b1002. 터렛
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1002 🎯 자바로 푸는 터렛 📌 문제 개요 두 터렛이 각각의 위치에서 일정한 반지름만큼의 범위를 감지한다.두 터렛이 동시에 감지할 수 있는 적의 위치 좌표 수를 구하는 문제이다. 터렛의 감지 범위는 원이 되고,두 원이 만나는 지점의 개수를 구하는 기하학적 문제이다. 🧪 예제 입력/출력 예제 입력30 0 13 40 0 370 0 3 0 7 41 1 1 1 1 5 예제 출력210 💡 핵심 아이디어 두 원이 만나거나, 만나지 않는 경우를 기하학적으로 분류하면 된다. 두 원의 중심 거리 = d반지름 각각 r1, r2조건설명결과d == 0 && r1 == r2원이 완전히 겹침 (무한히 많은 점)-1d > r1 + r2원이 서로 멀리 떨어..
b17413. 촌수계산
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/17413 🔄 자바로 푸는 단어뒤집기 2 📌 문제 개요 HTML 태그와 단어가 섞여 있는 문자열이 주어진다. 로 감싸진 부분은 그대로 출력하고나머지 단어들은 뒤집어서 출력해야 한다.단, 공백 단위로만 단어를 나누며, 태그 안에서는 문자를 뒤집지 않는다. 💡 예제 입력 & 출력 입력baekjoon online judge 출력noojkeab enilno egduj 입력tag 출력gat 🧠 알고리즘 접근 방식 문자열을 한 글자씩 순회하며,가 나오면 태그 시작 → isTag = true>가 나오면 태그 끝 → isTag = false태그 바깥에서는 단어를 StringBuilder에 저장하고, 공백이나 태그 시작 시 뒤집어서 출력마지막에 남..
b2644. 촌수계산
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/2644 👨‍👩‍👧 자바로 푸는 촌수 계산 (백준 2644) 📌 문제 개요 사람 수 n과 두 사람 x, y가 주어짐l개의 부모-자식 관계도 입력됨두 사람 간의 촌수를 계산하는 문제 촌수란? 부모와 자식은 1촌, 형제는 2촌부모-자식 관계만 주어지므로 그래프는 무방향 연결 그래프 💡 예제 입력97 371 21 32 72 82 94 54 6→ 7과 3의 관계는 다음과 같음:7 → 2 → 1 → 3 → 총 3촌 예제 출력3 🧠 알고리즘 접근 방식 각 사람을 정점으로 생각하고 양방향 그래프 구성DFS로 x부터 시작해서 y에 도달하는 경우를 탐색탐색 중 방문한 깊이 cnt를 통해 촌수를 구함 🔁 전체 코드import java.io..
b1068. 트리
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1068 🌲 자바로 푸는 트리 문제 풀이 (백준 1068 - 트리) 📌 문제 개요 N개의 노드로 이루어진 트리가 주어짐노드 중 하나를 삭제했을 때, 남은 트리의 리프 노드 개수를 구하는 문제 제약 조건 트리의 노드는 0번부터 N-1번까지루트는 부모가 -1인 노드삭제 시 해당 노드와 그 하위 노드 전부 제거 💡 예제 입력5-1 0 0 1 12→ 노드 2번을 지우면, 남은 트리 구조는 다음과 같다: 0 / \ 1 (X) / \ 3 4→ 리프 노드는 3, 4 → 2개 예제 출력2 🧠 알고리즘 접근 방식 입력 배열을 기반으로 트리 구조 생성tree[i] = [자식1, 자식2, ...]..