분류 전체보기 56

[프로그래머스] 당구 연습

https://school.programmers.co.kr/learn/courses/30/lessons/169198 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 예시를 통해서 가로, 세로가 동일할 것이란 생각에 어떤 방향이든 동일한 최솟값을 가질 거 같아 구현해 보았지만 가로, 세로가 달라질 수 있기 때문에 틀렸음 먼저 아이디어가 떠올랐던 것이 y절편, x절편이었고 이후에 좀 더 생각해 보니 x, y축으로 반사하여 두 점의 길이를 구하면 그 값이 원쿠션의 길이였음 다만 가로, 세로 크기가 달라서 모든 면에 대해 반사한 점에 대한 길이를 구해주어야 함 또한 x 또는 y가 시작점과 같은 경우 조건에 ..

DEV/코딩테스트 2025.04.22

[프로그래머스] 도넛과 막대 그래프

https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제를 접했을 때 가장 먼저 구해야 하는 것은 새로 생성된 노드를 찾는 것이라고 생각함 새로 생성된 노드의 특징은 나가는 간선이 2개 이상이고 들어오는 간선은 없다는 것임 따라서 graph를 만드는 과정에서 들어오는 간선의 수를 구해주고 새로 생성된 노드를 찾을 수 있음 생성된 노드 기준으로 탐색을 하며 각 그래프를 탐색하면 되는데 처음엔 각 그래프의 특징을 잡는 접근 방식을 사용했지만 문제에서 정의해 주듯 노드와 간선의 개수로 그래프를 구분함..

DEV/코딩테스트 2025.04.21

[프로그래머스] 연속된 부분 수열의 합

https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr제한사항5 ≤ sequence의 길이 ≤ 1,000,0001 ≤ sequence의 원소 ≤ 1,000sequence는 비내림차순으로 정렬되어 있습니다.5 ≤ k ≤ 1,000,000,000k는 항상 sequence의 부분 수열로 만들 수 있는 값입니다. 제한사항을 통해 모든 부분 수열을 구해서 풀이하는 것이 어렵다고 판단했지만 배열의 큰 수부터 거꾸로 하는 방법으로 구현해서 시간초과 발생 확인 DP 방식으로 아이디어를 생각해 봤지만 떠오르지 않..

DEV/코딩테스트 2025.04.20

[프로그래머스] 완전범죄

https://school.programmers.co.kr/learn/courses/30/lessons/389480 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr처음 문제를 보고 단순히 접근했을 때 dfs 방식으로 진행하면 되겠다는 생각이 들었음 하지만 제한사항이 작은 수임에도 불구하고 dfs방식을 채택하면 2의 승수로 경우의 수가 늘기 때문에 시간초과가 발생함 계속해서 문제를 이해하려 할 때 떠오르는 것은 DP방식이었음 하지만 어떻게 활용할 지에 대해 떠오르지 않았음 GPT에 질문 결과 DP의 배열은 B가 남긴 흔적 기준으로 만들고 B가 남긴 흔적 기준 A가 남긴 최소 흔적의 합을 저장해 주면 됨 반..

DEV/코딩테스트 2025.04.17

[프로그래머스] 요격 시스템

https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr제한사항1 ≤ targets의 길이 ≤ 500,000targets의 각 행은 [s,e] 형태입니다.이는 한 폭격 미사일의 x 좌표 범위를 나타내며, 개구간 (s, e)에서 요격해야 합니다.0 ≤ s 제한사항을 보았을 때 수가 상당히 큰 것을 볼 수 있음. 그래서 여러 알고리즘을 제거할 수 있었음 다만, 어떤 알고리즘도 활용 방법에 대해 떠오르지 않았음. 여러 아이디어들이 떠올랐지만 그 방식이 최적이 되는지가 판단이 되지 않았음 범위를 오름차순..

DEV/코딩테스트 2025.04.16

[프로그래머스] 충돌위험 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/340211 코딩테스트 연습 - [PCCP 기출문제] 3번 / 충돌위험 찾기알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려school.programmers.co.kr제한사항4. 다음 포인트로 이동할 때는 항상 최단 경로로 이동하며 최단 경로가 여러 가지일 경우, r 좌표가 변하는 이동을 c 좌표가 변하는 이동보다 먼저 합니다.2 ≤ points의 길이 = n ≤ 100 points[i]는 i + 1번 포인트의 [r 좌표, c 좌표]를 나타내는 길이가 2인 정수..

DEV/코딩테스트 2025.04.15

[프로그래머스] 매출 하락 최소화

https://school.programmers.co.kr/learn/courses/30/lessons/72416 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제를 접했을 때 트리가 보여 DFS, BFS로 접근하려 했음, 하지만 최상단부터 처리하는 것은 어려워 보여서 최하단부터 시작하여 거꾸로 계산하면 되는 것을 생각함. 다만, 해당 문제에 대한 갈피를 제대로 잡지 못했음. 그래서 GPT에 질문 결과 DFS + DP 문제라는 결론을 얻게 됨. dp의 구성은 해당 인덱스의 노드가 선택되지 않았을 때와 선택됐을 때의 값을 저장함. 트리의 가장 끝 노드는 선택됐을 때 본인의 매출액, 그렇지 않으면 0을 가..

DEV/코딩테스트 2025.04.14

[프로그래머스] 비밀 코드 해독

https://school.programmers.co.kr/learn/courses/30/lessons/388352 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr제한사항10 ≤ n ≤ 301 ≤ (q의 길이 = m) ≤ 10q[i]의 길이 = 5q[i]는 i+1번째 시도에서 입력한 5개의 서로 다른 정수를 담고 있으며, 오름차순으로 정렬되어 있습니다.1 ≤ q[i][j] ≤ nans의 길이 = mans[i]는 i+1번째 시도에서 입력한 5개의 정수 중 비밀 코드에 포함된 정수의 개수를 나타냅니다.0 ≤ ans[i] ≤ 5비밀 코드가 존재하지 않는(답이 0인) 경우는 주어지지 않습니다. 처음 문제를 보고..

DEV/코딩테스트 2025.04.10

[프로그래머스] 지게차와 크레인

https://school.programmers.co.kr/learn/courses/30/lessons/388353 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krrequest가 단일 문자로 올경우 테두리와 붙어있는 요청 문자를 제거하기 때문에 탐색이 필요하다고 생각함 문제에서 주어진 storage로만 이용해서 탐색하기엔 처음 기준이 없다고 생각하여 storage에 테두리를 추가하여 탐색하는 아이디어를 떠올림 두 번 반복된 문자의 요청이 올 경우 간단히 storage를 돌아 replaceAll 해주면 됨 requests의 반복이 진행될 때마다 다시 탐색해야 하기 때문에 반복문 상단에서 탐색 변수 초기화 ..

DEV/코딩테스트 2025.04.08

[프로그래머스] 서버 증설 횟수

https://school.programmers.co.kr/learn/courses/30/lessons/389479 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr제한사항players의 길이 = 240 ≤ players의 원소 ≤ 1,000players[i]는 i시 ~ i+1시 사이의 게임 이용자의 수를 나타냅니다.1 ≤ m ≤ 1,0001 ≤ k ≤ 24 제한사항을 보았을 때 수가 크지 않아 어떤 알고리즘도 채택이 가능하다고 생각했음 문제 예시를 확인하고 서버가 증설됐을 때 시간을 가지고 있는 배열을 통해 현재 서버의 개수를 확인하고 관리할 수 있겠다 생각함 필요한 서버의 개수는 현재 플레이어 수에서 ..

DEV/코딩테스트 2025.04.07