반응형

Java 18

[백준-11726번] 2×n 타일링 풀이 - Java

🚀 문제 🚀 접근 방법DP 문제이다.홀수라면 이전에서 2x1 블럭 밖에 못붙는다.짝수라면 2X2 경우만큼 올 수 있다.따라서 점화식은 dp[i] = dp[i-1][i-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 OutputStreamWriter(System.out)); ..

코딩테스트 2025.06.17

[Java] 문자열에서 특정 문자 개수 구하는 방법

Java 문자열에 포함된 특정 문자의 개수를 구하는 방법을 알아봅시다. 🚀 1. 반복문String str = "1001123";char findChar = '1';int count = 0;for(int i=0; i 🚀 2. Stream 이용(Java 8 이후 버전)String str = "1001123";char findChar = '1';long count = str.chars().filter(s->s==findChar).count();System.out.println(count); 🚀 3. replace() 이용String str = "1001123";char findChar = '1';int count = str.length()-str.replace(String.valueOf(findChar)..

[Java] OS 환경에 따라 파일 구분자 자동 지정하는 방법 - File.separator or Path

경로 지정 시 하드코딩으로 절대 경로를 지정하는 것은 안된다.그래서 OS 환경에 따라 파일 구분자가 자동으로 지정돼야 한다. 이때 사용할 수 있는 방법에는 두 가지가 있다. 1. File.separator로 파일 구분자 삽입하기// window -> test\file.png// linux -> test/file.pngString path = "test"+File.separator+"file.png" 2. Path.get()으로 파일 구분자 삽입하기// window -> test\file.png// linux -> test/file.pngPaths.get("test", "file.png")

[백준 15903번] 카드 합체 놀이 풀이 - Java

🚀 문제 🚀 접근 방법 1. 가장 작은 수끼리 더해서 덮어 쓰면 되기 때문에 우선순위 큐를 이용한다.2. 카드 개수는 1,000개, 자연수는 1,000,000까지 올 수 있으므로 int가 아닌 long으로 선언한다. 🚀 코드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[] infos = Arrays.stream(in.readLine().split(" ")).mapToInt(..

코딩테스트 2025.06.06

[백준-11727번] 2×n 타일링 2 풀이 - Java

🚀 문제https://www.acmicpc.net/problem/11727 🚀 접근 방법DP 문제이다.총 종류가 3가지 이므로 직전에서 1개가 늘어나면 2x1 타일밖에 오지 못해서 dp[i-1]이전꺼에서 2개가 늘어나면 2가지 타입으로 올 수 있기 때문에 dp[i-2]*2따라서 점화식은 dp[i] = dp[i-1]+dp[i-2]*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));..

코딩테스트 2025.06.06

[백준-11048번] 이동하기 풀이 - Java

🚀 문제https://www.acmicpc.net/problem/11048 🚀 접근 방법DP문제이다.3가지 방향으로만 움직일 수 있다. 이동 위치에서 이전 위치+현재 위치 값을 더한 값과 다른 이동방향에서 더해진 값을 비교해서 더 큰 값을 저장하면 된다.(총 3가지 방향에서 올 수 있으므로) 따라서 점화식은 아래와 같이 된다.dp[nx][ny] = Math.max(dp[i][j]+map[nx][ny], dp[nx][ny]);🚀 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader in = new Bu..

코딩테스트 2025.06.06

[백준-2839번] 설탕 배달 - Java

🚀 문제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){ ..

코딩테스트 2025.06.06

[백준-10844번] 쉬운 계단 수 - Java

🚀 문제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..

코딩테스트 2025.06.05
반응형