본문 바로가기

분류 전체보기

(55)
프로그래머스 42747번 | H-Index 문제 풀이 (Java) 제출 코드import java.util.Arrays;import java.util.Collections;public class Solution { public int solution(int[] citations) { int answer = 0; Integer[] array = Arrays.stream(citations).boxed().toArray(Integer[]::new); Arrays.sort(array, Collections.reverseOrder()); for(int i = 0; i array[i]) { break; } else { answer++; }..
백준 1427번 | 수 정렬하기 3 문제 풀이 (Java) 제출 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int N = Intege..
고급 정렬 알고리즘 구현: 카운팅 정렬 (Java) 카운팅 정렬- 비교 기반 정렬이 아니라 데이터의 개수를 세어서 정렬하는 방식- 데이터의 최대값(K)를 알아야 함- 데이터가 음수가 포함되면 사용하기 어렵거나 추가적인 조치 필요- 안정 정렬 시간 복잡도최선, 평균, 최악 : O(N+K)  단점실수 정렬 불가능음수가 포함되면 추가적인 조치 필요최대값(K)이 너무 크면 비효율적(메모리 사용 증가) 코드(오름차순)import java.util.Arrays;public class CountingSort { public static void countingSort(int[] arr) { // 최댓값 찾기 int max = Arrays.stream(arr).max().getAsInt(); // 카운트 배열 (0 ~ max)..
고급 정렬 알고리즘 구현: 병합 정렬 (Java) 병합 정렬- 분할 정복(divide and conquer) 전략을 이용한 효율적인 정렬 알고리즘 1. 분할(Divide)- 정렬할 리스트나 배열을 가능한 한 자은 단위(보통 한 개의 원소)로 나눕니다.  예) 배열을 중간 위치를 기준으로 두 개의 하위 배열로 분할 2. 정복(Conquer)- 더 이상 분할할 수 없는 작은 단위(원소 하나씩)가 될 떄까지 재귀적으로 분할합니다.  각 작은 배열은 본질적으로 이미 정렬된 상태 3. 병합(Merge)- 정렬된 하위 배열들을 하나의 정렬된 배열로 병합합니다.  이 과정에서는 두 개의 정렬된 배열을 비교하면서 작원 우너소부터 차례대로 새로운 배열에 넣어 정렬된 결과를 만들어냄 시간 복잡도최선, 평균, 최악 : O(nlogn)  단점추가 메모리 사용- 병합(Merg..
백준 1427번 | 소트인사이드 문제 풀이 (Java) 제출 코드import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.Arrays;import java.util.Collections;public class Main{ public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new Ou..
프로그래머스 42748번 | K번째수 문제 풀이 (Java) 제출 코드import java.util.*;class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int [commands.length]; for(int m = 0; m   gpt 추천 코드import java.util.Arrays;class Solution { public int[] solution(int[] array, int[][] commands) { return Arrays.stream(commands).mapToInt(cmd ->{ int[] subArray = Arrays.copyOfRange(array, cmd[0]..
백준 2750번 | 수 정렬하기 문제 풀이 (Java) 제출코드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)); int N = Integer.parseInt(br.readLine()); int[] arr = new int[N]; for(int i = 0; i arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; ..
백준 2751번 | 수 정렬하기 2 문제 풀이 (Java) 제출 코드import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int N = Integer.parseInt(br.readLine()); int[] arr = new int[N]; for(in..