b9328. 열쇠
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/9328 🔑 자바로 푸는 열쇠 문제 풀이 (백준 9328) 📌 문제 개요 감옥의 평면도가 주어졌을 때, 상하좌우 이동을 통해 가능한 많은 문서(’$’)를 얻는 것이 목표입니다. 벽은 *, 빈 공간은 ., 문은 A~Z, 열쇠는 a~z, 문서는 $열쇠가 있어야 문을 통과할 수 있음열쇠는 한 번 획득하면 해당 종류의 문을 모두 열 수 있음감옥의 외곽 어느 지점에서든 침입 가능 💡 예제 입력15 17*****************.............**$**B*A*P*C**X*Y*.X.*y*x*a*p**$*$**$******************cz 예제 출력3 🧠 알고리즘 접근 방식 이 문제는 BFS(너비 우선 탐색) 을 기반으로 풀..
b10942. 펠린드롬?
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/10942 🔁 자바로 푸는 펠린드롬? 문제 풀이 (백준 10942) 📌 문제 개요 수열이 주어졌을 때, 특정 구간이 펠린드롬(회문)인지 빠르게 판별해야 하는 문제입니다.질의가 최대 100만 번까지 주어지므로, 단순한 비교로는 시간 초과가 발생합니다. 💡 예제 입력71 2 1 3 1 2 141 32 53 35 7 예제 출력1 0 1 1 🛠 알고리즘 접근 방식 이 문제는 DP(Dynamic Programming) 을 활용해모든 가능한 구간에 대해 펠린드롬 여부를 미리 계산한 뒤,질의에 대해 빠르게 응답하는 구조로 풀 수 있습니다. ✅ 핵심 아이디어 isAns[s][e] = true if arr[s] == arr[e] and i..
b1655. 가운데를 말해요
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1655 🎤 자바로 푸는 가운데를 말해요 문제 풀이 📌 문제 개요 숫자가 하나씩 주어질 때마다, 지금까지 입력된 수들 중 가운데 수를 출력하는 문제입니다.단, 입력은 실시간으로 주어지며, 모든 수는 정수입니다. 💡 예제 입력715210-9975 예제 출력1 1 2 2 2 2 5 🛠 알고리즘 접근 방식 이 문제는 중간값(Median)을 실시간으로 관리하는 것이 핵심입니다. ✅ 핵심 아이디어: 두 개의 힙(PriorityQueue) 최대 힙 (왼쪽): 중간값보다 작은 수들을 저장최소 힙 (오른쪽): 중간값보다 큰 수들을 저장중간값은 항상 최대 힙의 top에 위치하도록 관리 힙의 크기를 조정하면서 항상 최대 힙 ≥ 최소 힙 ..
SQL - 20250515
·
DB/SQL
🐍 Python 개발자 찾기 – 쿼리 분석SELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python'ORDER BY ID ASC; ✅ WHERE SKILL_1 = ‘Python’ OR … 세 개의 스킬 컬럼 중 하나라도 ‘Python’인 개발자만 필터링OR 조건으로 다중 필드 비교스키마가 수직 분리되어 있지 않은 정규화되지 않은 구조에서 자주 사용 ✅ ORDER BY ID ASC ID 기준으로 오름차순 정렬 🧾 게시글 3건 이상 작성한 사용자 정보 조회 – 쿼리 분석SELECT UU.USER_ID, UU.NICK..
📅 SQL에서 DATE, DATETIME, TIMESTAMP 완전 정복 (MySQL)
·
DB/SQL
이게 도대체 뭐가 다른 거야? 🤯MySQL을 쓰다 보면 DATE, DATETIME, TIMESTAMP 중 어떤 걸 써야 할지 헷갈릴 때가 많다.오늘은 이 세 가지 타입의 차이점과 특징, 변환 방식, 실전 사용 팁까지 모두 정리해보자. ✅ 1. 기본 정의자료형설명저장 범위시간 포함 여부타임존 영향DATE날짜만 저장1000-01-01 ~ 9999-12-31❌ (시간 없음)❌DATETIME날짜 + 시간 저장1000-01-01 00:00:00 ~ 9999-12-31 23:59:59✅❌TIMESTAMP날짜 + 시간 저장 (UNIX 기반)1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC✅✅ (타임존 영향 받음) 💡 핵심 정리 DATE: 연/월/일만 필요할 때DATETIM..
SQL - 20250514
·
DB/SQL
💼 부서별 평균 연봉 조회 – 쿼리 분석SELECT HE.DEPT_ID, HD.DEPT_NAME_EN, ROUND(AVG(SAL),0) AS AVG_SALFROM HR_EMPLOYEES HEJOIN HR_DEPARTMENT HD ON HE.DEPT_ID = HD.DEPT_IDGROUP BY HE.DEPT_IDORDER BY AVG_SAL DESC; ✅ JOIN ONJOIN HR_DEPARTMENT HD ON HE.DEPT_ID = HD.DEPT_ID 부서 ID 기준으로 사원 테이블과 부서 테이블 연결부서 이름을 함께 출력하기 위해 필요 ✅ AVG(SAL), ROUND(…, 0) AVG(SAL): 부서별 평균 연봉 계산ROUND(..., 0): 소수점 없이 정수로 반올림 ✅ GROUP BY HE...
b1774. 우주신과의 교감
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1774 🌌 자바로 푸는 우주신과의 교감 문제 풀이 📌 문제 개요 백준 1774번 우주신과의 교감 문제는N개의 신들과 이미 연결된 M개의 통로 정보가 주어졌을 때,모든 우주신이 연결되도록 추가로 연결해야 할 최소 거리의 합을 구하는 문제입니다. 각 우주신은 2차원 좌표 위에 존재이미 연결된 통로는 추가 비용 없이 사용 가능목표는 전체 우주신을 연결하는 최소 비용 💡 예제 입력4 11 12 22 43 31 4 예제 출력2.00 🛠 알고리즘 접근 방식 이 문제는 기존 연결 정보를 고려한 최소 신장 트리(MST) 문제입니다. ✅ 핵심 아이디어 크루스칼 알고리즘을 사용해 거리 기준 오름차순 간선 선택M개의 이미 연결된 통로는 먼저 uni..
SQL - 20250513
·
DB/SQL
🚗 SUV 평균 일일 대여 요금 구하기 – 쿼리 분석SELECT ROUND(AVG(DAILY_FEE)) AS AVERAGE_FEEFROM CAR_RENTAL_COMPANY_CARWHERE CAR_TYPE = 'SUV'; ✅ WHERE CAR_TYPE = ‘SUV’ CAR_TYPE이 'SUV'인 차량만 필터링대상 조건에 해당하는 행만 평균 계산에 포함 ✅ AVG(DAILY_FEE) DAILY_FEE(일일 대여 요금)의 평균값 계산 ✅ ROUND(…) 평균 결과를 소수 첫째 자리에서 반올림실수 → 정수로 반환됨 🐶 모든 동물 보호소 기록 조회 – 쿼리 분석SELECT ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKEF..
b4386. 별자리 만들기
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/4386 ✨ 자바로 푸는 별자리 만들기 문제 풀이 📌 문제 개요 백준 4386번 “별자리 만들기”는주어진 N개의 별 좌표를 기반으로 별자리를 만들 때,모든 별을 연결하면서 최소한의 선분 길이 합을 구하는 문제입니다. 즉, 모든 별을 잇되 최소 비용으로 연결하는 구조를 요구하며, 이는 전형적인 최소 신장 트리(MST, Minimum Spanning Tree) 문제입니다. 💡 예제 입력31.0 1.02.0 2.02.0 4.0 예제 출력3.41 🛠 알고리즘 접근 방식 별들 간 거리를 간선으로 보고,이 중에서 가장 적은 거리의 간선들만을 선택해 모든 별을 연결해야 합니다. 이를 위해 프림 알고리즘을 사용합니다.(크루스칼도 가능하지만, 이 코..
SQL - 20250512
·
Algorithm & Data Structures/Programers
🍦 과일로 만든 아이스크림 고르기 – 쿼리 분석SELECT FLAVORFROM ICECREAM_INFOWHERE INGREDIENT_TYPE = 'fruit_based' AND FLAVOR IN ( SELECT FLAVOR FROM FIRST_HALF WHERE TOTAL_ORDER >= 3000 ); ✅ INGREDIENT_TYPE = ‘fruit_based’ 과일 기반 아이스크림만 필터링 ✅ FLAVOR IN (서브쿼리)SELECT FLAVOR FROM FIRST_HALFWHERE TOTAL_ORDER >= 3000 상반기(FIRST_HALF) 기준총 주문 수 3000 이상인 인기 아이스크림 추출메인 쿼리의 FLAVOR와 일치하..