본문 바로가기
반응형

java9

[Java][프로그래머스][PCCP 기출문제][Level 1] 붕대 감기 1. 문제 정보출처: 프로그래머스 PCCP 기출문제 1번 / 붕대 감기난이도: Level 1분류: 구현 (Implementation), 시뮬레이션 (Simulation) 2. 문제 설명어떤 게임 캐릭터가 붕대 감기 기술을 사용하여 체력을 회복하며, 동시에 몬스터의 공격 조건 속에서 생존해야 하는 문제다.붕대 감기 기술:t초 동안 붕대를 감으며, 1초마다 x만큼 체력을 회복한다.t초 연속으로 성공하면 y만큼의 추가 체력을 더 회복한다.최대 체력 한계를 넘어서 회복하는 것은 불가능하다.몬스터의 공격과 취소 조건:기술을 쓰는 도중 몬스터에게 공격당하면 기술이 강제로 취소된다.공격받는 순간에는 체력을 회복할 수 없으며, 연속 성공 시간이 0으로 리셋된다.공격당한 직후에는 곧바로 다시 붕대 감기를 시작한다.캐릭.. 2026. 5. 22.
[Java][프로그래머스][PCCP 기출 문제][Level 2] 퍼즐 게임 챌린지 1. 문제 정보출처: 프로그래머스 PCCP 기출문제 2번 / 퍼즐 게임 챌린지난이도: Level 2분류: 이분 탐색 (Binary Search), 매개변수 탐색 (Parametric Search) 2. 문제 설명순서대로 n개의 퍼즐을 제한 시간 내에 해결해야 하는 게임이다. 각 퍼즐은 난이도(diff)와 소요 시간(time_cur)을 가지며, 추가로 이전 퍼즐의 소요 시간(time_prev)도 풀이 시간에 영향을 줄 수 있다.플레이어의 숙련도(level)에 따라 퍼즐 하나를 풀 때 걸리는 시간은 다음과 같이 결정된다.diff 퍼즐을 단번에 해결한다.소요 시간: time_curdiff > level 일 때:퍼즐을 총 (diff - level)번 틀린다.틀릴 때마다 현재 퍼즐 시간 time_cur만큼 소모.. 2026. 5. 22.
[Java][프로그래머스][알고리즘 고득점 Kit] 기능개발 1. 문제 2. 도입부소프트웨어 개발 현장에서는 여러 기능이 동시에 개발되지만, 배포는 순서대로 이루어져야 하는 경우가 많다. 먼저 개발이 완료된 기능이라도 앞에 있는 기능이 아직 작업 중이라면 기다려야 하고, 앞에 있는 기능이 배포될 때 함께 배포되는 구조다. 이러한 '선행 의존성'은 알고리즘 문제에서 아주 자주 등장하는 소재다. 오늘은 각 작업의 진도와 속도를 이용해 남은 작업일을 계산하고, 이를 배포 단위로 그룹화하는 논리적인 흐름을 정리해 본다.3. 주요 특징 및 핵심 로직 이 문제의 핵심은 '각 작업이 며칠 뒤에 끝나는가'를 먼저 구한 뒤, 앞에서부터 흐름을 타며 묶는 것이다.잔여 작업일 계산: progresses와 speeds를 조합해 각 기능이 100%가 되기까지 필요한 일수(day)를 구한.. 2026. 5. 4.
[Java][프로그래머스][알고리즘 고득점 Kit][Level 3] 베스트앨범 1. 문제 정보 2. 도입부 스트리밍 사이트에서 가장 많이 재생된 곡들을 장르별로 추출하여 '베스트 앨범'을 만드는 시나리오는 실무에서도 흔히 접할 수 있는 데이터 가공 요구사항이다. 단순히 전체 리스트를 정렬하는 것이 아니라, '장르'라는 카테고리로 묶고, 그 안에서 다시 '재생 횟수'와 '고유 번호'라는 다중 기준을 적용해야 한다. 이 과정에서 어떤 자료구조를 선택해 데이터를 그룹화할 것인지, 그리고 자바의 정렬 인터페이스를 어떻게 활용할 것인지가 이 문제의 핵심이다. 특히 HashMap이라는 편리한 도구를 쓰면서도 왜 굳이 별도의 List를 만들어야 했는지, 그 기술적 배경을 중심으로 정리해 본다. 3. 주요 특징 및 핵심 로직이 문제의 요구사항은 크게 세 가지 우선순위로 나뉜다. 이를 해결하기 위.. 2026. 5. 4.
[Java][백준][골드 5] LCS - 9251 1. 문제 정보문제 번호: 9251번문제 제목: LCS알고리즘 분류: 동적 계획법 (Dynamic Programming)난이도: Gold 5 2. 문제 설명LCS(Longest Common Subsequence, 최장 공통 부분 수열) 문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제입니다.예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 되며 길이는 4입니다.입력첫째 줄과 둘째 줄에 두 문자열이 주어진다. (최대 1000글자)출력첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다. 3. 풀이 전략핵심 아이디어: 동적 계획법 (DP)이 문제는 전형적인 2차원 DP 문제입니다. 두 문자열의 길이를 각각 $L1, L2$라고 할 때, dp[L1+.. 2026. 4. 24.
[Backend] API 공통 응답 포맷(ApiResponse) 설계와 구현 전략: 왜 규격화가 중요한가? 1. 도입부웹 프로젝트에서 백엔드와 프론트엔드가 협업할 때 가장 빈번하게 발생하는 마찰 중 하나는 "데이터를 어떻게 주고받을 것인가"에 대한 약속이다. 만약 어떤 API는 결과값을 그대로 반환하고, 또 다른 API는 에러 메시지만 덩그러니 보낸다면 프론트엔드에서는 엔드포인트마다 각기 다른 파싱 로직을 작성해야 하는 비효율이 발생한다. 이러한 혼란을 방지하고 시스템의 일관성을 유지하기 위해 도입하는 것이 바로 'ApiResponse 공통 포맷'이다. 오늘은 모든 응답을 하나의 정해진 규격으로 감싸서 전달하는 ApiResponse 클래스의 설계 원리와 실무적인 활용 방안을 정리해 보았다. 2. 주요 특징 및 핵심 로직ApiResponse의 핵심은 모든 API 응답을 동일한 '껍데기(Wrapper)'로 감싸.. 2026. 4. 23.
반응형