분류 전체보기
-
[Algorithm: 힙] 프로그래머스 <더 맵게>Algorithms 2026. 3. 22. 17:55
문제https://school.programmers.co.kr/learn/courses/30/lessons/42626?language=java 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 가장 맵지 않은 두 개의 음식을 섞는 과정을 반복하는 문제이다. 섞는 방식은 다음과 같다.새로운 음식 = 가장 작은 값 + (두 번째로 작은 값 * 2) 이 과정을 최소 횟수로 수행해야 하며, 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없다면 -1을 반환한다. 처음 접근처음에는 리스트를 활용해서 정렬 후 앞에서부터 두 개를 꺼내는 방식으로 접근했다.List..
-
[Algorithm: 해시] 프로그래머스 <완주하지 못한 선수>Algorithms 2026. 3. 17. 17:08
문제https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=java 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명마라톤에 참여한 선수 목록과 완주한 선수 목록이 주어진다. 이때 단 한 명의 선수만 완주하지 못했으며, 그 선수를 찾는 문제이다.참가자 배열 participant와 완주자 배열 completion이 주어지고, 동명이인이 존재할 수 있다는 점이 주의사항이다. 처음 접근처음에는 단순하게 두 배열을 비교하는 방식으로 접근했다.for (int i=0; i 참가자 한 명마다 완주자 전체를 순회하면서 같은 이름을 찾고 제거하..
-
[Algorithm: 완전탐색] 프로그래머스 <카펫>Algorithms 2026. 3. 16. 17:27
문제https://school.programmers.co.kr/learn/courses/30/lessons/42842?language=java 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명갈색과 노란색 격자의 개수가 주어진다. 카펫은 다음과 같은 구조이다.가운데는 노란색 격자가장자리는 갈색 격자(테두리 1줄)노란색 영역을 갈색이 한 줄로 감싸는 형태이다. 이때 카펫의 전체 가로, 세로 길이를 구해야 한다. 조건은 다음과 같다.가로 길이 ≥ 세로 길이가운데 노란색 영역이 존재한다갈색은 테두리 한 줄이다 처음 접근과 고민노란색 영역을 다음과 같이 정의한다.width × height = yellow 노..
-
[Algorithm: 완전탐색] 프로그래머스 <소수찾기>Algorithms 2026. 3. 11. 19:48
문제http://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명1 ~ 7자리의 숫자가 문자열 형태로 주어진다. 이 숫자들을 조합하여 만들 수 있는 모든 숫자 중 소수의 개수를 구하는 문제이다.소수란 1과 자기 자신만을 약수로 가지는 수를 의미한다. 예를 들어 "17"이 주어졌다면 만들 수 있는 숫자는 다음과 같다.1, 7, 17, 71 이 중 소수는 7, 17, 71이므로 정답은 3이다. 처음 접근과 고민문제를 보고 크게 두 가지 로직이 필요하다고 판단했다.1. 소수를 판별하는 로직2. 주어진 숫자를 ..
-
[Algorithm: 완전탐색] 프로그래머스 <모의고사>Algorithms 2026. 3. 8. 20:22
문제https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명수포자 3명이 문제를 찍는 방식으로 시험을 본다.각 학생은 일정한 패턴으로 답을 반복하며 문제를 풀고, 실제 정답 배열 answers가 주어질 때 가장 많은 문제를 맞힌 학생을 구하는 문제이다.학생들의 찍는 패턴은 다음과 같다.학생패턴1번1, 2, 3, 4, 52번2, 1, 2, 3, 2, 4, 2, 53번3, 3, 1, 1, 2, 2, 4, 4, 5, 5가장 많은 문제를 맞힌 학생을 오름차순 배열로 반환해야 한다. 처음 접근과 고민문제를 ..
-
프로그래머스 [PCCP 기출문제] 1번 / <붕대 감기>Algorithms 2026. 2. 1. 15:18
문제 이해게임에 붕대 감기라는 기술이 있다.t초 동안 붕대를 감는다.붕대를 감는 동안 매 초 x 만큼 회복한다.t초 연속 성공하면 그 순간 추가로 y 만큼 회복한다.최대 체력(maxHealth)을 넘을 수 없다.공격을 받는 순간 기술은 취소되고, 그 순간에는 회복이 불가능하다.공격으로 취소되거나 기술이 끝나면 즉시 다시 붕대 감기를 사용하고, 연속 성공 시간은 0으로 초기화된다.체력이 0 이하가 되면 즉시 죽어서 -1을 반환한다. 변수 제한사항은 다음과 같다bandage는 [시전 시간, 초당 회복량, 추가 회복량] 형태의 길이가 3인 정수 배열1 ≤ 시전 시간 = t ≤ 501 ≤ 초당 회복량 = x ≤ 1001 ≤ 추가 회복량 = y ≤ 1001 ≤ health ≤ 1,0001 ≤ attacks의 길이..
-
CPU는 남는데 서비스가 멈추는 현상: DB 커넥션 병목Spring 2026. 2. 1. 13:26
백엔드 서버를 운영하다 보면 CPU 사용률은 10%도 안 되는데 서비스가 먹통이 되는 이상한 상황을 만나게 된다. 얼핏 보면 모순처럼 느껴지지만, 이것은 전형적인 DB 커넥션 병목 현상이다. 문제 상황상황을 한 문장으로 요약하면 이렇다:DB 커넥션 병목으로 웹 쓰레드가 BLOCKED 상태가 되어 CPU는 유휴 상태지만 서비스는 정지된 상황 왜 CPU는 놀고 있는가?CPU는 기본적으로 RUNNABLE 상태의 쓰레드만 실행한다. 그런데 이 상황에서는:웹 쓰레드 대부분이 DB 커넥션을 기다리며 BLOCKED/WAITING 상태BLOCKED 상태의 쓰레드는 CPU 스케줄링 대상이 아님결과적으로 CPU는 실행할 쓰레드가 없어서 유휴 상태따라서 CPU가 놀고 있다는 건 일이 없다는 뜻이 아니라, 실행 가능한 일이 ..
-
프로그래머스 <달리기 경주>Algorithms 2026. 2. 1. 11:21
문제 이해얀에서는 매년 달리기 경주가 열린다.해설진은 선수가 바로 앞의 선수를 추월할 때, 추월한 선수의 이름을 부른다.예를 들어, 1등부터 3등까지 선수들이 다음과 같은 순서로 달리고 있다고 하자.["mumu", "soe", "poe"]이때 해설진이 "soe"를 불렀다면, 2등이던 "soe" 선수가 1등 "mumu"를 추월했다는 의미가 된다. 결과는 다음과 같이 바뀐다.["soe", "mumu", "poe"]선수들의 이름이 현재 등수 순서대로 담긴 배열 players와 해설진이 부른 이름들이 담긴 배열 callings가 주어질 때,경주가 끝난 후의 최종 순위를 반환하는 solution 함수를 구현하는 문제이다. 초기 접근처음에는 단순하게 생각했다.callings 배열을 하나씩 순회하면서그 안에서 ..