본문 바로가기

분류 전체보기101

백준 2789 블랙잭 java 자바 아이디어 : 1. 경우의 수를 구하는 방법을 고려해 반복문의 범위를 생각해 보자 import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { // 배열 A와 숫자 n을 입력받는다. Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt(); int arr[] = new int[N]; int ansMax = 0; // 조건을 만족하는 여러개의 ans 중 가장 큰 값을 저장 for (int i = 0; i.. 2024. 1. 16.
백준 24313 자바 java 아이디어 : 식을 최대한 단순화 시켜보자 모두 된다고 가정하고, 안되는 부분만 제외하자 1. 우선 식을 알아보자 f(n) = a1n + a0 이다. O(g(n)) = {f(n) 에서 O(n) 으로 간소화 되었다. 따라서 g(n) = n이다. 2. 제약사항을 알아보자. (1). n ≥ n0 (2). f(n) ≤ c × g(n) 3. 식을 단순화 해보자. f(n) ≤ c × n 이다. 위에서 정의된 식을 대입하면, a1n + a0 ≤ c × n이 된다. n끼리 묶으면 n(a1-c) = a0가 된다. 이 식이 항상 참이되기 위해서는 c-a1이 항상 양수여야 한다. 따라서 c-a1 = a0 자체도 성립해야한다. n(c-a1) < a0 인 상황을 제거한다. impo.. 2024. 1. 15.
백준 3009 네 번째 점 아이디어 : 1. 직사각형이라는 점을 활용한다면 x와 y 좌표에 특정한 패턴이 있다는 것을 알 수 있다, 2. ~가 아닌 경우도 있다는 점을 생각하자 import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int x1 = sc.nextInt(); int y1 = sc.nextInt(); int x2 = sc.nextInt(); int y2 = sc.nextInt(); int x3 = sc.nextInt(); int y3 = sc.nextInt(); int x = 0; int y = 0; int arr1[] = .. 2024. 1. 12.
백준 1085 직사각형 탈출 자바 java 아이디어 : 0,0 에서 w,h까지 범위의 사각형안에 있는 x,y가 가장 빠르게 사각형을 나가려면 얼마를 이동해야하는지 생각해보자 최솟값을 구하는 방법을 생각해보자 import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int y = sc.nextInt(); int w = sc.nextInt(); int h = sc.nextInt(); int arr[] = { x, y, w - x, h - y }; int min = arr[0]; for (int i = 0; i < arr.. 2024. 1. 12.
백준 11653 소인수분해 자바 java 아이디어 : 소인수 분해의 경우 같은 수로 계속 나누어야 한다. 이 방법을 생각해 보자. import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); ArrayList list = new ArrayList(); int N = sc.nextInt(); for (int i = 2; i 2024. 1. 12.
백준 소수 2581 자바 java 아이디어 : 나누어 떨어지는 수가 2인 경우 소수인 것을 활용한다 ArrayList를 활용하여 동적 배열을 활용한다. import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); ArrayList list = new ArrayList(); int M = sc.nextInt(); int N = sc.nextInt(); int count = 0; int min = 100000; int sum = 0; for (int i = M; i 0) { System.out.print.. 2024. 1. 12.