자바
-
[프로그래머스] 점찍기 자바 (level2)코딩테스트 2025. 5. 7. 09:42
링크: https://school.programmers.co.kr/learn/courses/30/lessons/140107문제k : 점 좌표의 기준 배수d : 원점과의 거리return : 찍을 수 있는 총 점의 갯수접근x 좌표를 0 ~ d까지 k 간격으로 반복각 x에 대해 y의 최대값을 구한다.직선의 길이^2 = x^2 + y^2 = d^2 → y = sqrt(d^2 - x^2)/** * * @param k 점 좌표의 기준 배수. * @param d 원점과의 거리 * @return 찍을 수 있는 점 갯수 */ public long solution(int k, int d) { long cnt = 0; for(int x = 0; x 알게된 점..
-
[프로그래머스] 디펜스게임 자바 (level2) (우선순위 큐 maxHeap)코딩테스트 2025. 5. 6. 13:14
문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/142085문제주어진 내 병력수 n무적스킬 남은 횟수 k라운드 별 적 숫자 enemy주어진 병력과 무적스킬을 활용해서 버틸 수 있는 최대 라운드를 구하는 문제접근언제 무적스킬을 쓰는게 효율적인지 찾는 DFS방식으로 풀어보고자 함그러나 굳이 그럴 필요 없이 적의 수가 많은 라운드에 사용하는 것이 효율적임→ 내림차순 정렬한 우선순위 큐를 사용해서 무적스킬을 사용할 라운드를 정리/** * * @param n 내 병력 수 * @param k 무적스킬 남은 횟수 * @param enemy 매 라운드별 적의 숫자 * @return 게임 종료 라운드 */ ..
-
[프로그래머스] 마법의 엘리베이터 자바 (Level 2) DFS 완전탐색코딩테스트 2025. 5. 2. 22:43
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/1486531. 문제 요약주어진 층수 storey를 10의 n제곱값을 더하거나 빼서 0을 만든다.storey를 0으로 만드는데 필요한 최소 횟수를 구한다.2. 핵심 아이디어DFS 방식으로 0까지 차감 or -부터 0까지 증가하는 두 가지방식으로 탐색 및 비교하기.3. 풀이 코드/** * @param storey : 현재 층 * @return 0층까지 가기위한 최소 횟수 */ int minValue = Integer.MAX_VALUE; //버튼 누르면 현재 층 + 10^n (n 은 정수) 로 이동. 결과값 minValue) return; if(s..
-
[프로그래머스] 호텔 대실 자바 (Level 2)코딩테스트 2025. 4. 25. 09:19
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/1556511. 문제 요약주어진 예약을 모두 소화하는데 필요한 방 갯수의 최소값 구하기퇴실시간의 10분 후부터 다음 입실 가능.2. 핵심 아이디어모든 예약을 입실시간 기준 정렬최소 힙(우선순위 큐)을 사용하여 각 방의 다음 사용 가능 시간을 추적예약마다 사용 가능한 방이 있는지 확인가능: 해당 방 재사용 (방의 다음 사용 가능 시간 갱신)불가능: 새로운 방 추가3. 풀이 코드public int solution(String[][] book_time) { //1. 시작시간 기준으로 예약시간 정렬 Arrays.sort(book_time, (a, b) -> toMinute..
-
[프로그래머스 level2] 당구 연습 자바 반사코딩테스트 2025. 4. 21. 13:40
https://school.programmers.co.kr/learn/courses/30/lessons/169198 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제/** * 1쿠션 * @param m 당구대 가로 * @param n 당구대 세로 * @param startX 시작점 x * @param startY 시작점 y * @param balls 공위치 * @return 1쿠션으로 타격시 공이 굴러간 거리의 최솟값 제곱을 담은 배열 */피드백🔍 핵심 아이디어: 이미지 반사 (Mirrored Image) 1쿠션으로 목적구를 맞춘다는 것은 벽을 한 번 튕긴 후 목적구에 도달하는 것입니다. ..
-
[프로그래머스 level2] 리코쳇로봇 자바 BFS 큐코딩테스트 2025. 4. 20. 17:19
https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제* @param board 보드상황 표현. "." : 빈 공간, "R" : 출발위치 "D" : 장애물 "G" : 목적지* @return G까지 최소 이동거리. 불가능시 -1;이 게임은 한 번 이동할 때 상하좌우 한 방향으로 벽이나 장애물에 부딪힐 때 까지 계속 이동한다.주어진 board를 바탕으로 R -> G까지 필요한 최소 이동거리를 구하여라. (불가능할 경우 -1)접근보드의 출발점 ~ 목적지까지의 최소거리는 BFS방식이 효율적이라고 알고..
-
[프로그래머스 level2] 광물 캐기 자바 DFS / greedy 방식코딩테스트 2025. 4. 20. 10:09
https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제@param picks [dia , iron, stone] 종류별 곡괭이 수@param minerals [diamond, iron, stone] 으로 구성된 배열.@return 채굴완료에 필요한 최소 피로도접근 & 피드백어떤 곡괭이를 차용하느냐에 따라 피로도가 다름. 곡괭이 순서를 조합하여 최소값을 구해야 하므로DFS방식이나 GREEDY 정렬 방식을 사용할 수 있다고 한다. 1. DFS방식// 1. picks = {dia, iron, sto..
-
[프로그래머스 level2] 과제 진행하기 자바 시간순 정렬, Stack코딩테스트 2025. 4. 20. 08:39
https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제주어진 plans = [[업무이름,시작시간(hh:mm), 소요시간(분)], ...] 으로 구성되어 있다.[끝낸 순서대로 정렬된 업무 이름] 을 반환하시오.과제는 시작시각이 되면 시작합니다.다음 과제를 시작할 시각이 되었을 때, 진행 중이던 과제를 멈추고 새로운 과제를 시작합니다.과제 마감 후, 잠시 멈춘 과제가 있다면, 멈춰둔 과제를 이어서 진행합니다.만약, 과제를 끝낸 시각에 새로 시작해야 되는 과제와 잠시 멈춰둔 과제가 모두 있다면, 새..