2026/02 60

프로래머스 Lv1 유연근무제 문제

프로래머스 Lv1 유연근무제 문제해당 문제의 난이도 상승 원인startday을 기준으로 실제 요일을 매핑해야 함주말은 검사 대상에서 제외해당 문제를 해결한 방법24시 초과 대비 % 24 처리모든 평일을 통과하면 카운트 증가하도록 설정시작 요일 기준으로 모듈러 연산 적용문제의 핵심모듈러 연산 사용이 문제의 목적모듈러 연산에 대해서 몰랐다면 학습, 알고있다면 실제 적용법을 학습class FlexibleWorkSystem { public int solution(int[] schedules, int[][] timelogs, int startday){ int answer = 0; // schedules 기준으로 순환 for(int schedule=0; schedule ..

프로래머스 Lv1 개인정보 수집 유효기간 문제

프로래머스 Lv1 개인정보 수집 유효기간 문제해당 문제의 난이도 상승 원인날짜값을 모두 일 기준으로 변환 후, 추후에 또 다시 날짜로 재변환 해야함모든 달이 28일이라는 제한점해당 문제를 해결한 방법날짜를 모두 일 기준으로 변환하여 유효 개월값과 비교해 조건에 따라 처리처음 방식에서 변경한 방식처음연, 월, 일을 각각 계산하여 비교하려 시도하였으나 코드의 복잡성이 증가변경최대한 단순하게 변환한 후에 마지막에 원본 형태로 재변환 함문제의 핵심날짜를 특정 기준으로 계산 처리import java.util.*;class PersonalPeriod { public int[] solution(String today, String[] terms, String[] privacies) { List tr..

프로래머스 Lv1 달리기 경주 문제

프로래머스 Lv1 달리기 경주 문제해당 문제의 난이도 상승 원인순위 변경은 동적인데 현재 순위는 정적이라서 처리가 불가해당 문제를 해결한 방법들어온 선수 배열을 복사 후 현재 순위를 관리하기 위해 사용map 를 사용하여 선수의 순위가 변경될 시 그 값을 저장처음 방식에서 변경한 방식처음호출마다 배열에서 선수 위치를 탐색하였으나 실행에 오래걸리는 경우가 발생해 오류로 판별됨변경Map을 활용하여 위치를 즉시 조회해 시간을 줄임들어온 초기 배열을 복사하여 그 배열로 동적 처리 적용문제의 핵심교환 로직의 구현이 문제의 목적시간복잡도를 줄이는 것이 중요한 것임을 상기import java.util.*;class RunningRace { public String[] solution(String[] players..

프로래머스 Lv1 공원 산책 문제

프로래머스 Lv1 공원 산책 문제해당 문제의 난이도 상승 원인장애물의 여부해당 문제를 해결한 방법주어진 이동값 만큼 먼저 계산 후에 실패 시, 변경이 이뤄지지 않도록 작업처음 방식에서 변경한 방식처음이동 거리만큼 한 번에 좌표 계산하여 처리하려 하였으나 오류가 발생변경검사용 임시 좌표를 사용하여 테스트 후 성공 시에만 이동하도록 수정문제의 핵심미리 경로에 대한 테스트 실행하기이 문제의 목적검증 작업에 대한 중요성 상기import java.util.Arrays;class WalkPark { public int[] solution(String[] park, String[] routes) { int pxl = park[0].length(); int pyl = park.length..

프로래머스 Lv1 [PCCE 기출문제] 10번 공원 문제

프로래머스 Lv1 무제[PCCE 기출문제] 10번 공원 문제해당 문제의 난이도 상승 원인정사각형 영역 전체가 비어있는지 확인이 필요가장 큰 돗자리부터 확인해당 문제를 해결한 방법최대 x/y 값을 구하고 그 안에서 범위를 탐색만족하는 경우를 찾으면 바로 종료하여 불필요한 탐색은 일어나지 않게 함가능한 돗자리의 경우의 수들을 먼저 내림차순으로 정렬하여 최대 크기 돗자리가 선택되게 끔 설정처음 방식에서 변경한 방식처음모든 위치를 기준으로 최대 정사각형 크기를 계산하려고 시도변경이전 코드에선 중복작업이 많이 이를 제거하고, 하나라도 만족할 시 바로 반환하여 값이 나오도록 변경문제의 핵심들어온 데이터를 정렬시켜서 큰 값부터 탐색하게 하는 접근이 문제의 목적데이터 전처리의 중요성 알림불필요한 계산은 막도록 초기 설..

프로래머스 Lv1 [PCCP 기출문제] 1번 붕대 감기 문제

프로래머스 Lv1 [PCCP 기출문제] 1번 붕대 감기 문제해당 문제의 난이도 상승 원인공격이 들어오면 즉시 카운팅 초기화체력 상한선, 사망 처리 등 경계 조건해당 문제를 해결한 방법문제의 핵심공격에 대한 초기화 처리체력의 최소/최대 값에 대해 계산처리이 문제의 목적경계값 처리에 대한 학습import java.util.Map;import java.util.HashMap;class Bandaging { public int solution(int[] bandage, int health, int[][] attacks) { int answer = 0; int currHealth = health; // 계산에 사용될 체력 int combo = 0; // 연속 성공 횟수 ..

프로래머스 Lv1 [PCCP 기출문제] 1번 동영상 재생기 문제

프로래머스 Lv1 [PCCP 기출문제] 1번 동영상 재생기 문제해당 문제의 난이도 상승 원인이동 전 / 이동 후 모두 오프닝 구간 체크가 필요특정 구간 자동 스킵 조건이 존재해당 문제를 해결한 방법시간 이동 전/후를 검사하여 특정 구간에 들어가면 특별 처리하도록 기능 작성문제의 핵심'특정 구간'이라는 곳에 대한 경계처리가 중요이 문제의 목적경계값 처리에 대한 중요성을 일깨움class VideoPlayer { public String solution(String video_len, String pos, String op_start, String op_end, String[] commands) { String answer = ""; // 코딩 진행 상황 // 입력값..

프로래머스 Lv1 신고 결과 받기 문제

프로래머스 Lv1 신고 결과 받기 문제해당 문제의 난이도 상승 원인실행 시간 제한이 10초 이내로 설정되어 불필요한 반복등을 배제해야함동일 유저에 대한 중복 신고를 최대 1로 제한해야 함해당 문제를 해결한 방법'Set'을 사용하여 중복 요청들어 올 때 추가로 카운팅하지 않도록 제한한 사람을 Map 요소 하나도 두어 그 사람이 신고했던 사람, 그 사람을 신고했던 사람들의 정보들을 저장문제의 핵심불필요한 반복을 피하고 딱 필요한 데이터만 사용해야 함이 문제의 목적불필요한 동작 등을 고려하여 코드를 짜도록 학습import java.util.*;class ReceiveReportResults { public int[] solution(String[] id_list, String[] report, int k..

프로래머스 Lv1 택배 상자 꺼내기 문제

프로래머스 Lv1 택배 상자 꺼내기 문제해당 문제의 난이도 상승 원인짝수층의 순서가 역순이어서 처리에 혼동을 줌해당 문제를 해결한 방법박스들의 최대 x, y 좌표를 구한 후, 특정 박스를 골랐을 때 그 박스가 소속된 x, y 좌표를 구하고 그 좌표 부분의 최상단을 확인하여 최상단에 박스가 있는지 없는지 검사처음 방식에서 변경한 방식처음짝수층의 좌표를 - 로 두어서 검사하려고 하였으나 오히려 더 복잡해지는 상황 발생변경전체 좌표를 미리 구하지 않고 최대 x, y 만 구한 후, 박스가 특정되었을 때 그 박스의 좌표와 최상단 만을 검사하도록 함문제의 핵심최상단 박스가 한 층을 온전히 이루는지 아니면 일부만 이룰 때 처리법이 문제의 목적문제에 '좌표'를 사용하게 끔 유도를 하지만, 실제로는 그러지 않아도 된다는..

프로래머스 Lv1 가장 많이 받은 선물 문제

프로래머스 Lv1 가장 많이 받은 선물 문제해당 문제의 난이도 상승 원인friends 데이터에 필요한 정보가 다 있지만 정리가 되어 있지 않아서 이상태로 사용 시 불편함해당 문제를 해결한 방법데이터를 먼저 전처리하여 사용하기 좋게 조정 후 사용문제의 핵심연관이 되어있는 친구끼리만 값을 비교해야 한다.이 문제의 목적필요한 데이터가 모두 있더라도 사용하기 좋게 정제해야 하는 경우가 있다는 것을 학습import java.util.*;import java.util.stream.*;class MostReceivedGift { public Map>> settingMapStructure(String[] friends){ return Arrays.stream(friends)..