본문 바로가기

728x90
반응형

Major-

(863)
[LeetCode- Part. 4] 3. 작업 일정의 최소 난이도 # (+ 2차원 DP) https://leetcode.com/problems/minimum-difficulty-of-a-job-schedule/ Minimum Difficulty of a Job Schedule - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com jobDifficulty ={6,5,4,3,2,1}, d=2 jobDifficulty ={7,1,7,1,7,1}, d=3 문제 분석 날짜들의 최솟값을 구하기 위해서는 각각의 날짜의 최곳값을 더해야한다. -> DP로 구현 가능한 ..
[LeetCode- Part. 4] 2. 슬라이딩 윈도우 최댓값 ##(+슬라이딩 윈도우, Deque) https://leetcode.com/problems/sliding-window-maximum/submissions/ Sliding Window Maximum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. K값에 해당하는 윈도우 초기값 설정 2. 한칸씩 제거하고 추가하는 작업 수행 3. 타임리밋 발생 +) 스트림을 이용한 최댓값 구하기 //스트림을 int형으로 매핑 후, 최댓값 찾아서 스트림을 다시 int형으로 변환 Integer maxValue =li..
[LeetCode- Part. 4] 1. N일 후 감옥 ## (+ 재귀함수, Arrays.toString, 삼항연산자) https://leetcode.com/problems/prison-cells-after-n-days/submissions/ Prison Cells After N Days - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 2중 for문 -> 타임리밋 발생 2. 재귀 이용 class Solution { public int[] prisonAfterNDays(int[] cells, int n) { //감옥이 사용될경우 1, 비어있을 경우 0 //양쪽의 감옥이 모두..
[LeetCode- Part. 3] 5. Province의 수 (+DFS) https://leetcode.com/problems/number-of-provinces/ Number of Provinces - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 연결된 도시를 찾는다. -> 직접연결과 간접연결 2. 초기값을 전달한 후, 초기값에서 연결된 모든 도시를 찾는다. 3. 연결된 모든 도시 찾기 종료 후, 다음 도시들은 모두 세면서 연결되어있는지 찾는다. class Solution { static int answer; public i..
[LeetCode- Part. 3] 4. 숫자를 영어 단어로 변환 # (+분할과 정복) https://leetcode.com/problems/integer-to-english-words/ Integer to English Words - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 참고 자료 https://and-some.tistory.com/897 [LeetCode- Ch3. 배열] 5. 빗물 담기 # [+ 분할과 정복] https://leetcode.com/problems/trapping-rain-water/ Trapping Rain Water..
5. 퍼즐게임 (+ 2차원 DP) // 퍼즐게임 // 2장의 카드가 남을 때 까지 반복해서 뽑는다 -> (뽑은 카드)*(뽑은 왼쪽 카드)*(뽑은 오른쪽 카드) 결과를 더한다. // 나열된 카드 중에서 맨 왼쪽 카드와 맨 오른쪽 카드는 뽑아서는 안된다. // 맨 마지막 동작을 하고 나면, 두 장의 카드가 남는다. // 당신의 목표는 동작을 모두 하고나서, 각 동작의 점수의 합이 최소가 되도록 동작 +) 세련된 풀이 : 동적계획법 dy[i][j] : i번째부터 j번째까지의 까지의 부분수열을 게임동작했을 때 얻을 수 있는 최소 점수 package Q5; import java.util.*; class Main2 { public int solution(int[] nums){ int n=nums.length; int[][] dy = new int[..
4. 사과 먹기 (+BFS) DFS는 스택을 이용한 깊이 우선 탐색 BFS는 큐를 이용한 너비 우선 탐색 DFS를 이용한 풀이 : N이 커지면, 타임리밋 발생 -> BFS 이용하도록 변경 package Q4; public class Main { public static void main(String[] args) { // 하루 동안 먹을 수 있는 사과의 개수입니다. // 1) 사과 한 개를 먹는다. // 2) 현재 있는 사과의 개수가 2로 나누어 떨어지는 개수라면 그 절반(사과개수 / 2)을 먹는다. 3) 현재 있는 사과의 개수가 3으로 나누어 떨어진다면 (사과개수 / 3) * 2 개의 사과를 먹는 다. // 현수에게 N개의 사과가 주어지면 현수가 위 3가지 중 하나를 선택해서 먹을 때 최소 몇 일만 에 사과를 모두 먹을 수 있는지..
3. 그래프 최대점수 (+DFS) +) 세련된 풀이 : DFS 각 노드를 무한 반복해, ch 배열로 첫 번째로 방문 했는지를 확인 import java.util.*; class Edge { public int vex; public int cost; Edge(int vex, int cost) { this.vex = vex; this.cost = cost; } } class Main { public int answer=0; public ArrayList graph; public int[] ch; public void DFS(int cur, int time, int sum, int[] nums){ if(time

728x90
반응형