목록전체 글 (73)
delpho
Think 1. 점화식이 주어졌기때문에 그나마 간단하게 풀었음. 2. 0의 개수와 1의 개수를 세야하니 처음에는 객체로 풀었음 3. https://st-lab.tistory.com/124 를 보니, 2차원배열로도 풀 수 있다는걸 확인함 객체코드1 (2차원배열 사용) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class test { static int n, t; static Integer dp[][]; static BufferedReader br = new BufferedReader(new InputStreamReader(System.i..
Think 1. DP 분류로 되어있는 문제로 고른거였지만, DP로 풀 방법이 떠오르지 않아 처음에는 단순 재귀로 풀었다. 2. https://lotuslee.tistory.com/43 를 참고해보니, 규칙성이 있다는 점을 확인할 수 있었고, 이를 통해 점화식을 도출하는 부분을 보았다. 3. https://goodmilktea.tistory.com/43 의 글처럼, DP는 (재귀를 적용시킬 점화식) + (종료조건)을 찾는게 관건인 것 같다. 4. 앞으로도 Top-Down과 Bottom-Up 방식을 모두 고려해보자 제출 코드1 (DP) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; impo..
Think 1. 구현 방법 접근을 dp로 떠올릴 수 있는 단계는 아직 아닌거같다.. 그래서 https://st-lab.tistory.com/133 참고함. 2. 처음에는 풀이가 이해가 안됐는데, 이해가 되니 너무 신기하고 재밌다. 세상 사람들 참 똑똑하다 3. 아직 실버 3인데 하하.. dp는 정말 많이 풀어봐야겠다 제출코드 1 (DP와 재귀 활용) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int n; static Integer dp[]; static BufferedReader br = new Bu..
Think 1. 처음에는 되게 단순하게 풀었음. 강의실을 다루기위해 연결리스트를 사용하고, 해당 리스트를 탐색하면서 강의의 시작보다 강의실의 종료시간이 빠르면 갱신하는 식으로. 2. 하지만 틀렸고, 문제를 다시 읽어보면서 반례를 찾아봄 3. 1번처럼 풀면, 최적화되지 않음 (강의가 5-6이고, 강의실에 (3-5, 2-4)로 되어있는 경우일때, 두번째 강의실에 갱신해야 더 최적일 수도 있음) 4. input과 강의실을 관리하는 자료구조들을 정렬해야 될 필요성을 느끼고 우선순위 큐를 활용하였음. 5. (참고) 강의실을 관리하는 우선순위 큐는 끝나는 시간만 저장해도 된다. 제출 코드 import java.io.BufferedReader; import java.io.IOException; import java...
Think 1. Map을 활용해서 문제 푸는 아이디어는 어렵지 않았음. 2. 종류별 개수로 경우의 수를 도출하는 계산식을 잘 고려해야함 ( 종류별 개수 + 1을 모두 곱한 후 (-1) 해주어야함 ) 종류별 개수 + 1을 하는 이유는, 옷을 안 입는 경우도 있기 때문 마지막에 -1을 하는 이유는, 옷을 모두 안 입는 경우는 없기 때문 제출 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int N, M, map[][], white, blue; static Map m = new HashMap(); sta..
Think 1. BFS인데 약간의 조건을 고려해야하는 문제 2. 연합이 있는 경우 전체 BFS를 한번 더 진행해야해서 이를 파악하기 위한 isPossibleContinue을 잘 활용해야 했음 (While문 탈출 조건으로 활용해야해서) 3. 최적화 고려하면 더 좋은 문제 (ex. 연합 있는 경우만 BFS 진행) 제출코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class test { static int N, L, R, map[][]; static boolean isVisited[][], isPossibleContinue; static ..