Lv 3. 거스름돈
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12907 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   이 문제는 거스름돈을 주는 방법의 가짓수를 계산하는 문제다.주어진 동전 종류와 목표 금액 n 대해, 각각의 동전을 사용해 목표 금액을 만들 수 있는 방법의 수를 동적 계획법(DP)을 활용하여 계산하면 풀기 쉽다. dp 배열에는 금액별로 거스름돈을 만들 수 있는 경우의 수를 저장한다. 배열의 크기는 n+1로 초기화되며, dp[i]는 금액 i를 만들 수 있는 경우의 수를 나타낸다.먼저 가장 작은 동전에 대해 처리하며, 해당 동전으로 나누어떨어지..
Lv 3. 다단계 칫솔 판매
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   다단계 판매 구조에서 각 판매원이 얻은 수익을 계산하는 문제다. 판매원의 추천 관계를 기반으로 수익을 배분하며, 일정 비율의 수익은 상위 추천인에게 전달되고 나머지는 자신이 보유하게 된다.solution 메서드는 먼저 판매원과 추천인의 관계를 relation 맵에 저장하고, 각 판매원의 초기 수익을 0으로 설정한다.추천인이 없는 경우 center로 설정해 루트 노드를 명시한다.이후 판매원들의 판매 정보를 순회하며,각 판매원의 수익을 계산하기..
Lv 3. [1차] 셔틀버스
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/17678 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   이 문제는 주어진 버스 스케줄과 대기자 명단을 기반으로 마지막 버스를 타기 위해 가장 늦게 도착해야 하는 시간을 계산한다. 먼저 timetable을 분 단위로 변환해 list에 저장하고, 이를 오름차순으로 정렬한다. 첫 번째 버스는 540분(09:00)부터 시작해 t분 간격으로 총 n번 운행하며, 각 버스는 최대 m명의 승객을 태울 수 있다.반복문을 통해 각 버스의 출발 시간을 계산하며 대기자의 도착 시간이 버스 시간 이하인 경우 태울 수 ..
Lv 3. 가장 긴 펠린드롬
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12904 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr    이 문제는 주어진 문자열에서 가장 긴 팰린드롬(앞뒤가 같은 문자열)의 길이를 구하는 문제다. 모든 가능한 부분 문자열을 탐색하며, 팰린드롬인지 확인한 후 길이를 계산해 최댓값을 갱신하는 방식으로 구현했다.solution 메서드는 문자열의 길이를 arrSize로 저장하고,모든 가능한 시작점 i와 끝점 j를 반복문으로 탐색한다.이때, j는 항상 i 이상부터 탐색하므로 부분 문자열의 범위를 점차 줄여가며 효율적으로 확인한다. 각 부분 문자열이 ..
Lv 3. 부대복귀
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/132266 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   이 문제는 특정 목적지에서 여러 출발지까지의 최소 이동 거리를 구하는 문제다.주어진 그래프는 양방향 도로로 연결되어 있으며,BFS를 사용해 목적지로부터 각 노드까지의 거리를 계산한다.먼저 solution 메서드는 입력으로 주어진 그래프 정보를 graph 리스트 배열로 초기화하고,각 노드의 거리를 저장할 cost 배열을 -1로 초기화하여 방문 여부와 거리를 동시에 관리한다.그런 다음, 모든 도로 정보를 읽어 graph에 양방향으로 저장한다...
Lv 3. 경주로 건설
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   이 문제는 BFS를 사용해 격자형 경로에서 최단 비용을 계산하며,방향 전환에 따른 코너 비용까지 고려하여 최적의 이동 경로를 찾는 문제다. 각 셀에서 이동 방향에 따라 비용이 달라지므로,방향을 기록할 수 있는 3차원 배열 isVisited를 사용해각 위치와 방향에 따른 최소 비용을 저장한다. 먼저 solution 메서드에서 answer를 최댓값으로 초기화하고 bfs 메서드를 호출해 탐색을 시작한다.  bfs 메서드는 시작 지점 (0,0)에서..
Lv 3. 디스크 컨트롤러
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   이 문제는  주어진 작업들의 평균 대기 시간을 최소화하는 문제다.jobs 배열은 각 작업의 요청 시간과 소요 시간을 담고 있으며,이를 효율적으로 처리하기 위해 힙(우선순위 큐)을 사용한다. 먼저 jobs 배열을 요청 시간 기준으로 오름차순 정렬해작업이 들어온 순서대로 처리할 수 있게 한다.작업 대기 시간을 최소화하려면 요청된 작업 중 소요 시간이 짧은 작업을우선 처리하는 것이 좋으므로,우선순위 큐에 각 작업을 소요 시간 기준으로 넣고 꺼내면..
Lv 3. 연속 펄스 부분 수열의 합
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/161988?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krhttps://velog.io/@sheltonwon/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%97%B0%EC%86%8D-%ED%8E%84%EC%8A%A4-%EB%B6%80%EB%B6%84-%EC%88%98%EC%97%B4%EC%9D%98-%ED%95%A9-JAVA [프로그래머스] 연속 펄스 부분 수열의 합 JAVA문제링크1로 시작하는 누적합 배열과, -1로..
Lv 3. 입국심사
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   최소 시간 0 최대시간 ( 가장 오래걸리는 심사관 * 인원수)로 특정하고 2분탐색을 통해서 시간을 찾아 내었다. calculate method로 시간을 input 하면 output으로 인원수를 return 해주는 method 구현하였고 binarySearch method로 이분탐색 method 구현하였다. binarySearch method에서 calculate method 호출하여 return 받는 인원수가 n 보다 최소한으로 클때의 순간..
Lv 3. 여행경로
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  이 문제는 DFS를 사용해 주어진 항공권 목록을 통해 모든 가능한 경로를 찾고,알파벳 순서상 가장 빠른 경로를 반환하는 문제다. 먼저 dfs 메서드를 통해 "ICN"에서 출발하여 다음 공항으로이동하는 재귀적 탐색을 진행하며,방문한 항공권은 isVisited 배열로 관리해 중복 방문을 방지하고,routes 리스트에 경로가 완성될 때마다 추가한다. dfs는 현재 공항과 경로, 그리고 몇 개의 티켓을 사용했는지를매개변수로 받아 모든 항공권을 사용해..