본문 바로가기
728x90
반응형

전체 글148

99클럽 코테 스터디 32일차 TIL Stream method 1 Stream methodHashMap의 값을 정렬하는 과정에서 많은 메서드가 쓰여서 정리해 본다.주로 Stream Class의 method들이다.  Map map = new HashMap(); map.put(1, 3);map.put(2, 2);map.put(3, 5);map.put(4, 1);map.entrySet().stream() .sorted((v1, v2) -> v2.getValue().compareTo(v1.getValue())) .limit(k) .mapToInt(Entry::getKey) .toArray(); 1. sorted(Comparator c)와 compareTo().sorted((v1, v2) -> v2.getValue().compareTo(v1).getValu.. 2024. 6. 20.
99클럽 코테 스터디 31일차 TIL 병합 정렬 구현 병합 정렬 구현정렬해야 할 리스트를 계속 분할하여 최대한 작게 쪼갠 후, 부분 리스트에서 인접한 원소들끼리 비교하여 정렬하는 방식정렬 방법 주어진 리스트를 절반으로 분할하여 부분 리스트로 나눈다. (Divide : 분할) 해당 부분 리스트의 길이가 1 이 아니라면 1번 과정을 되풀이한다. 인접한 부분 리스트끼리 정렬하여 합친다. (Conqure : 정복)시간 복잡도 O(NlogN) 최선, 평균, 최악 모두 같다.구현import java.util.Arrays;public class MergeSort { public static int[] answer, temp; public static void main(String[] args) { solution(5, new int[]{5, 4.. 2024. 6. 19.
99클럽 코테 스터디 30일차 TIL 병합 정렬 병합 정렬분할과 정복 방식을 사용해 데이터를 분할하고 분할한 값들을 정렬하며 합치는 알고리즘분할 정복? -> 문제를 나눌 수 없을 때까지 나누어서 각각을 풀면서 다시 합병하여 문제의 답을 얻는 알고리즘정렬해야 할 리스트를 계속 분할하여 최대한 작게 쪼갠 후, 부분 리스트에서 인접한 원소들끼리 비교하여 정렬하는 방식정렬 방법 주어진 리스트를 절반으로 분할하여 부분 리스트로 나눈다. (Divide : 분할) 해당 부분 리스트의 길이가 1 이 아니라면 1번 과정을 되풀이한다.반드시 2개의 부분 리스트로 나눌 필요는 없다. 인접한 부분 리스트끼리 정렬하여 합친다. (Conqure : 정복)병합할 때는 투 포인터 개념을 사용한다.각 부분 리스트의 맨 앞 원소부터 비교를 진행한다.각 부분 리스트는 이미 오름차순 .. 2024. 6. 18.
99클럽 코테 스터디 29일차 TIL 순열과 조합 순열과 조합매번 헷갈리는 순열과 조합을 정리해 본다. 순열서로 다른 n개의 사물 중에서 r개를 순서에 상관하여 선택하는 경우의 수를 구하는 것조합서로 다른 n개의 사물 중에서 r개를 순서에 상관없이 선택하는 경우의 수를 구하는 것중복 순열n개의 사물 중에서 중복을 허용하여 r개를 순서에 상관하여 선택하는 경우의 수를 구하는 것중복 조합n개의 사물 중에서 중복을 허용하여 r개를 순서에 상관없이 선택하는 경우의 수를 구하는 것 느낀 점고등학생 때 배우고 다시 안 할 줄 알았는데, 또 만나게 되었다. 그때 보다 더 열심히 외워야겠다.다음에 학습할 것순열, 조합 직접 구현하기순열, 조합, 중복 순열, 중복 조합에 대해 배웠다. 2024. 6. 17.
99클럽 코테 스터디 28일차 TIL 투 포인터 투 포인터 two pointer2개의 포인터로 알고리즘의 시간 복잡도를 최적화하는데 쓰이는 개념입니다. 투 포인터1~N 범위의 자연수에서 연속된 자연수의 합이 N 이 되는 가짓수를 찾는 예제에서 투포인터를 활용해 보겠습니다.N을 5라고 가정합니다.처음에 start_index와 end_index의 값을 맨 앞에 설정합니다. (start = 1, end = 1)sum = start_index ~ end_index까지의 합이라고 정의할 수 있습니다.현재 sum = 1 이므로 N인 5보다 작습니다.sum  (start = 1, end = 2)이는, 연속된 자연수의 범위를 한 칸 더 확장한다는 의미입니다.sum = 3 (1+2) 이므로 N인 5보다 작습니다.end_index를 오른쪽으로 한 칸 이동합니다.  (s.. 2024. 6. 16.
99클럽 코테 스터디 27일차 TIL printf printf()print()로 긴 출력문을 만들기 수고가 많이 들어 printf()를 정리해본다. 정수형%d : 부호 있는 10진수 정수%o : 8진수 정수%x : 16진수 정수 (소문자)%X : 16진수 정수 (대문자) int intValue = 42;System.out.printf("정수: %d\n", intValue);System.out.printf("8진수: %o\n", intValue);System.out.printf("16진수 (소문자): %x\n", intValue);System.out.printf("16진수 (대문자): %X\n", intValue);// 정수: 42// 8진수: 52// 16진수 (소문자): 2a// 16진수 (대문자): 2A  부동 소수점 형%f : 10진수 부동 소수점.. 2024. 6. 15.
99클럽 코테 스터디 26일차 TIL Arrays method Arrays methodArrays에는 정말 다양한 method들이 있다.새롭게 알게 될 때마다 기록하여 기억하자. 1. Arrays.copyOf(int[] original, int newLength)원본 배열을 복사하여 새로운 배열을 반환한다.original: 복사할 원본 배열newLength: 복사할 배열의 길이 (index 0부터 복사된다.) int[] array = new int[]{0, 1, 2, 3, 4, 5, 6, 7};int[] copy1 = Arrays.copyOf(array, array.length);int[] copy2 = Arrays.copyOf(array, 4);int[] copy3 = Arrays.copyOf(array, 10);// copy1 = [0, 1, 2, 3, 4, 5.. 2024. 6. 14.
99클럽 코테 스터디 25일차 TIL 2차원 배열 동적 할당 2차원 배열 동적 할당하는 방법n은 row의 크기, m은 col의 크기라고 하자.n은 알지만 m의 크기는 정해지지 않았을 때, 2차원 배열에 값을 할당하는 과정에서 문제가 생겼다.m의 크기가 정해져 있을 때는  1. int[][] graph = new int[n][]; (처음 접근한 방법)m의 크기가 정해져 있지 않은 상황에서는 사용할 수 없었다.장점access 속도가 빠르고, 메모리 효율이 좋다.기본형 배열이므로 타입 안정적이다.단점동적으로 크기를 조정할 수 없다.m을 미리 초기화해야 한다. int[][] graph = new int[n][];for (int i = 0; i   2. List> graph = new ArrayList(); 리스트의 타입으로 Integer 리스트를 넣는 경우장점m의 크기를.. 2024. 6. 13.
728x90
반응형