Home
Dohyun's Blog
Cancel

코테 응용(조합, 소수, 약수배수, 정렬, 집합 등등)

브루트 포스(완전탐색) 선형 구조 : 순차 탐색 비선형 구조 : 백트래킹, DFS, BFS 완전탐색할 경우 시간복잡도로 계산되는 최댓값이 1억을 넘지 않으면 사용 가능. 정렬 Arrays.sort(arr); // O(n^2) Arrays.sort(arr, Collections.reverseOrder()); // 내림차순 Collect...

코테 심화(dfs, bfs, 동적계획법, 그리디 등등)

동적 프로그래밍 재귀 + 메모이제이션 이미 계산한 부분을 따로 저장하여 중복 계산하지 않도록 하는 방법. ** 재귀가 크게 중복되지 않는데 이러한 방법을 사용하면 오히려 비효율적이기 때문에 확인해야 한다. dp문제 만날 때 for문을 이용한 Bottom-up 방식, 재귀를 이용한 Top-down 방식이 있다는 것을 명심. 꼭 ...

코테 기본(자료형, 문자열, Collection 등)

List List<Integer> list = new ArrayList<>(); list.get(i); list.add(k); list.stream().distinct().mapToInt(Integer::intValue).toArray(); //distinct()로 중복제거. HashMap HashMap<Intege...

mysql Disk Full

서버도 작동하고 DB에 접근하는 동작들도 다 정상적으로 되지만 DB를 보려고 하면 Disk full오류가 발생했다. 검색해본 결과 서버의 디스크 용량이 꽉 찬 케이스였다. du -sh * ## 해당 경로에서 바로 용량 확인하기 du -h --max-depth=1 ## 폴더별 용량 sort해서 보기 du -hs * | sort -rh | ...

프로세스와 쓰레드

프로세스 실행중인 프로그램. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스 = 데이터,메모리등의 자원 + 쓰레드 쓰레드 = 프로세스의 자원을 이용해 실제로 작업을 수행하는 것 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재하며 둘 이상의 쓰레드를 가진 프로세스를 멀티쓰레드 프로세스라고 한다. ...

스트림(Stream)

스트림 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기위해 for문과 Iterator를 이용해 코드를 작성해왔다. 이러한 방식은 너무 길고 알아보기 어렵다. 그리고 재사용성도 떨어진다는 단점이 있다. 또 다른 문제는 데이터 소스마다 다른 방식으로 다루어야 한다는 것이다. 예를들어 List를 정렬할 때는 Collections.sort()를, 배열...

람다(Lambda)

람다식(Lambda expression) 람다식의 도입으로 이해 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 람다식은 간단히 말해서 메서드를 하나의 식으로 표현한 것이다. 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 ‘익명함수’라고도 한다. ...

지네릭스, 열거형, 애너테이션

지네릭스 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스 컴파일 시의 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 선언 class Box<T>{ T item; void setItem(T item) {this.item = item;} T ge...

해시

해시 해시법 데이터를 저장할 위치(인덱스)를 간단한 연산으로 구하는 것으로 검색, 추가, 삭제를 효율적으로 수행할 수 있다. 해시값을 인덱스가 되도록 하는 것이 일반적이며 해시값으로는 보통 나머지를 구하는 연산 또는 나머지 연산을 응용한 방식을 이용한다. 해시 테이블: 해시값이 인덱스가 되도록 키 값을 저장한 배열 버킷: 해시 테이블의 ...

컬렉션 프레임워크(List, Set, Map)

컬렉션 프레임워크 컬렉션데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의했다. 그리고 인터페이스 List와 Set의 공통된 부분을 다시 뽑아 새로운 인터페이스인 Collection을 추가로 정의했다. Map은 List와 Set처럼 공통부분이 많지않아 같은 상속계층도에 포함되지 못...