java42 백준 2751 수 정렬2 자바 java 문제를 풀어보니 앞선 수 정렬 1에서 사용한 방식을 사용하면 시간초과가 뜬다. N의 범위가 1,000,000까지로 늘어났기 때문으로 생각된다. 조금이라도 시간을 아끼끼 위해 Scanner보다 BufferReader과 BuffferWriter을 사용하기로 한다. 기존에 사용한 정렬방식은 버블정렬이었는데, 이 방식은 선택정렬, 삽입정렬과 함께 큰 수를 정렬할 때는 비효율 적인 방식이다. (시간복잡도 O(n^2)) 따라서 Arrays.sort(); 를 사용해보기로 했다. 이 방식은 시간복잡도( O(n log n) 이다. 따라서 큰 수에 효율적인 Arrays.sort()를 사용하기로 한다. import java.io.BufferedReader; import java.io.BufferedWriter; import.. 2024. 1. 18. 백준 1436 영화감독 숲 자바 java 아이디어: 1. 메소드를 사용하여 666이 포함되어 있는 숫자를 찾아내자. 2. 배열을 사용하여 해당되는 값을 모두 저장하자. 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); int N = sc.nextInt(); // 몇번 째 수를 출력할지 입력받음. ArrayList list = new ArrayList(); // 동적배열 선언 int i = 666; // 666부터 시작하기 위한 수 i를 선언 while (list.size() < N) { //무한대.. 2024. 1. 16. 백준 19532 수학은 비대면강의입니다. 자바 java import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { // 배열 A와 숫자 n을 입력받는다. Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int d = sc.nextInt(); int e = sc.nextInt(); int f = sc.nextInt(); int x = 0; int y = 0; for (int i = -999; i 2024. 1. 16. 백준 2231 분해합 java 자바 아이디어 : 각 자리수의 합을 도출 할 방법을 생각해보자, 가장 작은 수를 도출할 방법을 생각해 보자. 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 result = 0; // 마지막 정답을 반환할 변수 만약 해당하는 수가 없다면 0을 반환. for (int i = 1; i < N; i++) { //1부터 N까지 숫자 중.. 2024. 1. 16. 백준 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. 이전 1 2 3 4 5 6 7 다음