일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 백준 9095번
- 자료구조
- DFS
- docker image 한번에 지우기
- 백준 15903번
- 정보처리기사 필기 합격 후기
- requirements 생성
- 자바
- Kotlin
- 프로세스 조회
- 코틀린
- 정보처리기사 교재 없이
- docker container 한번에 지우기
- Java
- 도커 중복 이미지
- 백준
- Spring
- 백준 11057번
- 문자열에서 원하는 문자 개수 찾기
- DP
- 코테
- 백준 14442번
- kotlin record
- 백준 2670
- 프로세스 kill
- 백준 11048번
- 백준 1904번
- BFS
- 백준 25418
- docker
- Today
- Total
목록전체 글 (66)
개발자로 살아남기

🚀 문제https://www.acmicpc.net/problem/2670🚀 접근 방법백준 1912번 풀이와 비슷하다.구간 별 최대 값들을 저장하고, 가장 큰 값을 출력하면 된다.주의할 점은 data저장과 dp 저장 자료형을 double로 선언할 것 🚀 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(in.readLine()); ..

🚀 문제https://www.acmicpc.net/problem/2193 🚀 접근 방법 DP 문제이다.주의할 점은 long으로 선언해야 된다는 점 -> n이 커지면 이친수 값이 int를 벗어날 수 있음 규칙은 dp[i] = dp[i-1]+dp[i-2]123451101011001010100010011010110100100001000110010 🚀 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in));..

🚀 문제 🚀 접근 방법DP문제이다.!백준 10844번 쉬운 계단수와 비슷한 풀이 방법이다.끝자리가 0이면 0~91이면 1~9....9이면 9만 올 수 있는 것을 이용한다.01234567890~91~92~93~94~95~96~97~98~99 🚀 코드import java.io.*;import java.util.Arrays;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new O..

🚀 문제https://www.acmicpc.net/problem/25418 🚀 접근 방법 BFS나 DFS로 풀려다가 DP로 푸는게 더 간단해서 DP로 풀었다. 그냥 A%2==0을 조건으로 주면 안되고 A의 2배수보다 커야한다! 🚀 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter out = new BufferedWriter(new OutputStreamW..

🚀 문제https://www.acmicpc.net/problem/2839🚀 접근 방법DP 문제이다. 가장 적게 설탕 배달을 해야 하니까 5로 나누어 떨어지면 그대로 그 값을 더한 값을 내보내고그게 아니라면 -3을 해가면서 덜어내면 된다.while(sugar>=0)인 이유는 0이어도 타야 하니까!sugar가 0보다 작으면 -1을 반환하게 하면 된다. ✅ 반례4999 -> 10015000 -> 1000 🚀 코드import java.io.*;public class Main { public static int getBagCount(int sugar){ int count = 0; while(sugar>=0){ if(sugar%5==0){ ..

🚀 문제https://www.acmicpc.net/problem/10844 🚀 접근 방법DP 문제이다. 끝 자리 개수를 저장하는 것이 포인트 0은 1, 9는 8만 올 수 있다.그 사이 값들은 -1, +1이 올 수 있다. 끝자리가 2라면 이전 2가 온 개수 만큼 끝자리가 1과 3 자릿수에 더해주면 된다. 🚀 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw..

🚀 문제https://www.acmicpc.net/problem/2579 🚀 접근 방법DP 문제이다.현재 위치 기준 올 수 있는 방법은 2가지이다. 1. 두개의 계단 + 현재의 계단점화식: dp[i-3]+score[i-1]+score[i] 2. 이전 계단+현재의 계단점화식: dp[i-2]+score[i] 2개의 케이스 중 더 score가 큰 값을 선택하면 된다. 최종 식: Math.max( dp[i-3]+score[i-1]+score[i] , dp[i-2]+score[i] ) 🚀 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception{ ..

🚀 문제https://www.acmicpc.net/problem/1904 🚀 접근 방법DP 문제이다. i-2 -> 00i-1 -> 1붙기 때문에 이전 2개의 개수를 더 한 값과 같다. 점화식dp[i-1]+dp[i-2]12345100110011001110000001111001001111100001001111100110011111110010010000111001개2개3개5개8개 🚀 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamR..

🚀 문제https://www.acmicpc.net/problem/9095 🚀 접근 방법DP 문제이다.보면 이전 3개의 합과 같은 것을 볼 수 있다. 점화식dp[i-1]+dp[i-2]+dp[i-3]1234511+121+1+11+22+131+1+1+11+1+21+2+11+32+1+12+23+11+1+1+1+11+1+1+21+1+2+11+2+1+11+2+21+1+31+3+12+1+1+12+1+22+2+12+33+1+13+21개2개4개7개13개 🚀 코드import java.io.*;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader..

🚀 문제https://www.acmicpc.net/problem/1463 🚀 접근 방법유명한 DP 문제이다.처음 수를 알 기 때문에 상향식으로 풀 수 있다. 앞에서 구한 결과 값을 저장했다가 후에 사용하게 되는데, 2와 3으로 나누어 떨어지지 않는 경우에는무조건 1을 빼는 연산을 하기 때문에 해당 연산을 먼저 진행한 뒤2와 3으로 나누어 떨어지는지 확인하고 최소 값을 선택한다. 🚀 코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)..