본문 바로가기

전체 글39

(JAVA) 백준온라인 9095번 - 1, 2, 3 더하기 쉬운 문제라고는 하지만 무척 많이 애쓰고 이번에는 풀이 방법에서만 힌트를 얻고 정답 코드는 보지 않았다! 근접하게 갈 뻔 했으나 역시 틀려서 정답 코드를 봤다 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[11]; dp[0] = 0; dp[1] = 1; dp[2] = 2; dp[3] = 4; for (int i = 0; i < n; i++) { int num = sc.nextInt(); for (int j = 4; j 2023. 9. 11.
(JAVA) 백준온라인 11727번 - 2xn 타일링 2 이 문제는 이전 문제인 2xn 타일링에서 더 발전 시키면 된다 2x2 타일까지 생겼으니 점화식은 dp[i-1] + 2 * dp[i - 2] import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[1001]; dp[1] = 1; dp[2] = 3; for(int i=3; i 2023. 9. 10.
(JAVA) 백준온라인 11726번 - 2xn 타일링 이 문제의 경우는,,,, 2x1 타일을 세로로 세워서 채우는 경우는 n - 1이라고 한다 그리고 가로로 눕혀서 채우는 경우는 n - 2이다 점화식은 dp[i-1] + dp[i - 2] 으로 나오는 것이다 코드는 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[1001]; dp[1] = 1; dp[2] = 3; for(int i=3; i 2023. 9. 10.
(JAVA)백준온라인 1463번 - 1로 만들기 아 어렵다 구글링 하면서 계속 반복 연습 하는 수 밖에 없는 것 같다 ㅠㅠ import java.util.Scanner; public class Main { static int[] dp; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); dp = new int[n+1]; dp[1] = 0; for(int i = 2; i dp[i/2] + 1){ dp[i] = dp[i/2] + 1; } if( i % 3 == 0 && dp[i] > dp[i/3] + 1){ dp[i] = .. 2023. 9. 9.
(JAVA)백준온라인 11576번 - Base Conversion 이 문제의 풀이는 요약하자면 A진법을 10진법으로 바꾸고 난 후 B진법으로 바꿔주면 되는 것이다! 두번째 줄은 자릿수를 입력하고 그 자릿수에 따른 숫자를 세번째 줄의 입력에 공백으로 나누어서 넣어주면 된다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class Main { public static boolean[] isComposite; public static void main(String[] args) throws I.. 2023. 9. 1.
(JAVA)백준온라인 1373번 - 2진수 8진수 https://www.acmicpc.net/problem/1373 이 문제 같은 경우는 2진수가 주어지고 나서 3개씩 끊어줬을 때 1개가 남거나 2개가 남는 조건에 그에 맞는 계산을 해주고 나머지는 반복문을 이용하여 계산을 해준다 일단 2진수가 만약 1010011일 경우 3개씩 끊어준다 함은 1 / 010 / 011 로 끊고 각 칸에 맞게 계산을 한다면? 2^0*1 / 2^2*0 + 2^1*1 + 2^0*0 / 2^2*0 + 2^1*1 + 2^0*1 = 1 / 0 + 2 + 0 / 0 + 2 + 1 = 1/2/3 = 123이다! 이 원리를 기반으로 코딩을 한다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt.. 2023. 8. 23.