목록Algorithm (7)
DNF LOVE

공간 복잡도는 낮지만 시간 복잡도가 굉장히 높은 경우 어떻게 해야할까? 그럴때에는 보통 공간(메모리)을 사용하여 시간 복잡도를 낮추는 방법이 있다. 시간 복잡도를 안좋게 하는 가장 대표적인 일이 '불필요한 연산'이다. 계산하는 과정에서 발생하는 불필요한 연산/정보는 자료구조 중 가장 많이 쓰이는 배열에서는 어떻게 해결할까? 공간과 배열의 특징, 'Index'를 활용한다. Index를 통한 배열의 검색의 시간 복잡도는 O(1)이다. 아래 영상처리 개념을 예시로 설명해 보도록 하겠다. 원본 영상에서 명암을 15씩 증가하여 밝기를 높이는 영상처리를 만든다고 가정해보자. 영상처리에서 이러한 기법을 LUT(Look-up Table)이라 한다. LUT연산은 산술 연산을 고속으로 수행할 때 사용한다. 이는 LUT로 ..
0730 - 가지치기 유의하기 0801 - LUT 개념 활용하기(계산 속도 확 떨어진다. 데이터값을 인덱스로 활용하기), JAVA는 정수형 001을 출력시 0은 사라진다. format으로 설정하자. 0804 - 넘겨야 하는 데이터가 많을 시(문제3B) 객체 생성하여 넘기기 0807 - 입력해야할 데이터가 많으면 Scanner가 아닌 BufferedWriter로 사용하기 쓰임새 : BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out)); 0807 - 배열 정렬 : Arrays,sort(배열명); ArrayList 정렬 : Collections.sort(boardList); 0807 - LUT로 값을 집어넣으면 딱히 정렬할..

알고리즘 시험 유형 중 가장 기본 중 기본이 소인수 분해, 약수 구하기가 아닌가 싶다. 당연히 '약수를 구하는 알고리즘을 구현하시오'가 아닌 약수를 이용한 심화된 알고리즘을 풀어야 한다. [약수 구하기] '약수'란, 어떤 수로 정수가 나누어떨어지는것을 대하여 이르는 말이다. 그리고 1과 자기자신으로밖에 나누어 떨어지지 않는 수를 우리는 소수라고 부른다. 그렇다면 약수를 알고리즘 화 시키는 것은 어떻게 해야할까? 약수의 정의를 조금 다르게 해보자. 어떤 자연수 a, b가 있을 때 a를 b로 나누었을 때 나머지가 0이면 b는 a의 약수라 한다. 이렇게 정의를 알고리즘 화시켜보면 if문과 for문을 어떻게 활용해야할지 감이 잡히게 된다, import java.util.*; public class divisor..