본문 바로가기

분류 전체보기101

백준 1181 단어 정렬 이 문제를 해결하는 방식은 기본적으로 다음과 같다. 1. set을 사용하여 중복을 제거한다. 2. set 사용으로 인해 list형식으로 변환된 값을 다시 배열로 바꾼다. 3. 단어 수에 따라 정렬하고 만약 같다면 알패벳 순으로 정렬한다. 시간을 고려하지 않고 코드를 작성한 모습이다. 이해에 도움이 될 것이다. import java.util.Arrays; import java.util.Scanner; import java.util.Set; import java.util.HashSet; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int N = sc.. 2024. 1. 22.
백준 11650 좌표 정렬하기 자바 java 이차원 배열을 정렬하는 문제라고 볼 수 있다. N개의 (x, y)를 정렬하는 것이다. x를 기준으로 우선 정렬하고, x값이 같다면 y를 사용하여 정렬하라는 것이다. 일단 속도를 무시하고 직접적인 방식으로 풀어보았다. 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(); int arr[][] = new int[N][2]; for (int i = 0; i < N; i++) { arr[i][0] = sc.nextInt(); arr[i][1] = sc.nextInt(); } /.. 2024. 1. 18.
백준 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.