Lv 4. 무지의 먹방 라이브
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/42891 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   📌 자바(Java)로 푸는 무지의 먹방 라이브 문제 - 프로그래머스 🍜⏱ 🔎 문제 개요 프로그래머스 Lv.4 - 무지의 먹방 라이브 문제는무지가 각 음식의 걸리는 시간만큼 음식을 순서대로 먹고,k초 후에 몇 번째 음식을 먹고 있어야 하는지를 구하는 문제입니다. 단, **음식 순서는 원형(끝나면 처음으로)**이고,시간이 부족하면 -1을 반환해야 합니다. 💡 예제 입력food_times = [3, 1, 2]k = 5 💡 예제 출력1➡ ..
b.2696 중앙값 구하기
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/2696   📌 자바(Java)로 푸는 중앙값 구하기 - 백준 2696 🔢 🔎 문제 개요 백준 2696번 - 중앙값 구하기 문제는여러 개의 수열이 주어졌을 때,각 수열마다 홀수 번째 수를 입력받을 때마다의 중앙값을 구하는 문제입니다. 입력 수열의 개수: T각 수열은 최대 10씩 끊어져 입력홀수 번째 수가 들어올 때마다 중앙값 출력 💡 예제 입력191 2 3 4 5 6 7 8 9 💡 예제 출력51 2 3 4 5  🛠 알고리즘 접근 방식 이 문제는 대표적인 중앙값(Median) 유지 문제로,**최대 힙(왼쪽 절반) + 최소 힙(오른쪽 절반)**을 사용하여 중앙값을 효율적으로 관리합니다.  ✏️ 핵심 아이디어 left: 최대 힙, 중앙값보다 ..
Lv 2. 택배 배달과 수거하기
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   📌 자바(Java)로 푸는 택배 배달과 수거하기 - 프로그래머스 🚚📦 🔎 문제 개요 프로그래머스 Lv.2 - 택배 배달과 수거하기 문제입니다.트럭이 정해진 용량(cap)만큼 배달/수거를 하며 모든 집에 물건을 배달하고 수거하려고 합니다.왕복 이동 거리의 최솟값을 구하는 것이 목표입니다. 💡 예제 입력cap = 4, n = 5deliveries = [1, 0, 3, 1, 2]pickups = [0, 3, 0, 4, 0] 💡 예제 ..
b.2075 N번째 큰 수
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/2075   📌 자바(Java)로 푸는 N번째 큰 수 문제 - 백준 2075 🧮 🔎 문제 개요 백준 2075번 - N번째 큰 수 문제입니다.N x N 크기의 행렬이 주어졌을 때, 모든 수를 정렬했을 때 N번째로 큰 수를 구하는 문제입니다. • 단순 정렬로 풀 수 있지만, 효율적인 풀이가 중요합니다. • 메모리 제한과 시간 제한을 고려하면 우선순위 큐 사용이 더 적절합니다. 💡 예제 입력512 7 9 15 513 8 11 19 621 10 26 31 1648 14 28 35 2552 20 32 41 49💡 예제 출력35➡ 모든 수 중 5번째로 큰 수(내림차순 정렬 기준)는 35 🛠 접근 방식 현재 코드는 모든 값을 배열에 넣고 정렬한 뒤 ..
Lv 3. 광고 삽입
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/72414  📌 자바(Java)로 푸는 광고 삽입 문제 - 프로그래머스 📺📊🔎 문제 개요 프로그래머스 Lv.3 - 광고 삽입 문제입니다.하루 동안의 동영상 재생 기록(logs)이 주어졌을 때,광고를 삽입할 시작 시간을 정해서, 전체 광고 누적 시청 시간을 최대화하는 문제입니다.💡 예제 입력play_time = "02:03:55"adv_time = "00:14:15"logs = [ "01:20:15-01:45:14", "00:40:31-01:00:00", ...]💡 예제 출력"01:30:59"➡ 해당 시각에 광고를 삽입했을 때 광고 누적 시청 시간이 최대가 되는 시각을 반환🛠 알고리즘 ..
b.3273 두 수의 합
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/3273   📌 자바(Java)로 푸는 두 수의 합 문제 - 백준 3273  🔎 문제 개요 백준 3273번 - 두 수의 합 문제입니다.정수 N개로 이루어진 수열이 주어질 때,서로 다른 두 수를 더해서 target이 되는 경우의 수를 구하는 문제입니다.조건은 다음과 같습니다: • 한 쌍은 한 번만 셈 • 중복 없이, 오름차순 또는 내림차순 상관없이 쌍을 구성 💡 예제 입력9 5 12 7 10 9 1 2 3 11 13💡 예제 출력3➡ 5+8, 1+12, 2+11 총 3쌍이 존재 🛠 알고리즘 접근 방식 이 문제는 대표적인 투 포인터(Two Pointer) 기법으로 해결할 수 있습니다. ✏️ 주요 고려 사항 • 배열을 정렬한 후, 왼쪽 포인터..
동시성제어? 왜 두번해야함?
·
DB/RDBMS
DB가 다 해준다며? 그런데 왜 스프링에서도 동시성 제어를 해야 하지? 📚 시작하며 요즘 DB 스터디에서 『Real MySQL 8.0』을 읽으면서 MySQL에 대한 이해를 깊게 하고 있는데, 진짜 놀란 게 하나 있었다.“MySQL… 얘 동시성 제어에 진심이구나?” 정말 생각보다 정교하게 락(Lock)을 걸고,MVCC, 세마포어, Undo 로그, 트랜잭션 격리 수준 같은 기능으로동시에 발생하는 수많은 쿼리를 정확하게 처리하고 있었다. 그러던 중, 내가 참여 중이던 해커톤 프로젝트에서스프링 애플리케이션 쪽에서도 동시성 제어가 필요한 상황이 생겼다. 그래서 의문이 들었다.   ❓ 궁금했다 “DB에서 이렇게 철저하게 동시성 제어를 해주는데,왜 굳이 스프링에서도 락을 걸어야 하지?” 처음엔 이게 잘 이해되지 않..
Lv 4. 호텔 방 배정
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/64063 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   📌 자바(Java)로 푸는 호텔 방 배정 문제 - 프로그래머스 🏨🔎 문제 개요프로그래머스 - 호텔 방 배정 문제입니다.호텔에는 k개의 방이 있으며, 손님이 원하는 방을 요청하면 비어 있으면 배정하고,비어있지 않다면 가장 가까운 빈 방을 배정해야 합니다.🚪 여러 손님이 들어오면서 빠르게 배정하는 것이 핵심입니다.💡 예제 입력long k = 10;long[] room_number = {1, 3, 4, 1, 3, 1};💡 예제 출력[1..
b.11657 타임머신
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/11657   📌 자바(Java)로 푸는 타임머신 문제 - 백준 11657 ⏳ 🔎 문제 개요 백준 11657번 - 타임머신 문제입니다.N개의 도시와 M개의 버스 노선이 주어질 때,“1번 도시에서 다른 모든 도시로 가는 최단 시간” 을 구하는 문제입니다.🕰 단, 음수 가중치(시간이 감소하는 경우)도 존재할 수 있으며, 음수 사이클 여부를 판별해야 합니다. 💡 예제 입력3 41 2 41 3 32 3 -23 1 -1💡 예제 출력43-1➡ 1번 도시에서 각각 2번, 3번으로 가는 최단 거리 출력 (도달 불가능 시 -1) 🛠 알고리즘 접근 방식 이 문제를 해결하기 위해 벨만-포드 알고리즘(Bellman-Ford Algorithm) 을 사용합니다...
b1956. 운동
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1956   📌 자바(Java)로 푸는 운동 문제 - 백준 1956 🚴‍♂️🔎 문제 개요 백준 1956번 - 운동 문제입니다.V개의 마을과 E개의 도로가 주어졌을 때,“한 마을에서 출발하여 다시 그 마을로 돌아오는 최소 사이클의 길이” 를 구하는 문제입니다.🚴 즉, 최단 사이클(순환 경로)의 길이를 찾는 것이 핵심입니다. 💡 예제 입력3 41 2 13 1 12 3 11 3 5💡 예제 출력3➡ 최단 사이클의 길이가 3인 경우를 찾아 출력 🛠 알고리즘 접근 방식 이 문제를 해결하기 위해 플로이드-워셜 알고리즘(Floyd-Warshall Algorithm) 을 사용합니다. ✏️ 주요 고려 사항 ✔ 모든 정점 간 최단 경로를 계산해야 함✔ 각..