본문 바로가기

전체 글70

[논문리뷰] Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising https://arxiv.org/pdf/1608.03981.pdf 1. What is Image Denoising? y = x + v 일 때 noisy image y 에서 clean image x 를 얻는 과정 (y : noisy observation, x : clean image, v : noise(AWGN)) 2. 기존 Denoising 방식들의 한계 품질은 높으나 최적화가 복잡하고 소비시간이 높음 Non-convex 하고 여러 파라미터를 설정해야 함 CSF나 TNRD는 적절한 계산 효율성과 노이즈 제거 품질을 가졌으나 특정 노이즈 레벨에만 제한되며 여러 파라미터 설정이 필요함 3. DnCNN 기존 CNN의 장점을 이용함. CNN을 깊게 쌓으면 이미지 특성을 충분히 고려할 수 있을 만큼 capacit.. 2022. 3. 12.
[JAVA/백준/1181] 단어정렬 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 정렬에 두 가지 조건이 있는 문제다. 길이가 짧은 것부터 길이가 같으면 사전 순으로 처음 문제를 접근할 때 사전순으로 정렬하고 길이순으로 하면 되지 않을까?라고 생각했지만 4 aa ab b a 라는 입력이 주어진다면 ab가 aa보다 먼저 출력되어 오답이 된다. 더보기 잘못된 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; impo.. 2022. 2. 7.
[JAVA/백준/1406] 에디터 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 배열 하나를 이용했더니 시간 초과가 떴다. 스택 두 개를 이용하여 커서의 위치를 기준으로 두 스택으로 나뉘어 데이터를 이동시켰다. 위 그림과 같이 L(커서를 왼쪽으로 이동)일 경우에는 왼쪽 스택에서 pop하여 오른쪽 스택에 push 해줬다. 마찬가지로 D(커서를 오른쪽으로 이동)일 경우에는 오른쪽 스택에서 pop하여 왼쪽 스택에 push 해줬다. B(커서 왼쪽 문자 제거)일 경우에는 왼쪽 스택에서 pop 해주었다. P 5(커서 왼쪽에 문자 추가)일 경우에는 왼쪽 .. 2022. 2. 3.
[JAVA] LinkedList 연결 리스트 LinkedList는 데이터와 포인터를 가진 노드 여러개가 연결된 자료구조다. 위의 사진처럼 전 노드의 포인터가 다음 노드의 데이터를 가리킨다. 중간의 데이터를 추가, 삭제할 때 연결을 끊고 추가해주면 되기 때문에 O(1)의 시간 복잡도를 가지는 장점이 있다. 하지만 데이터를 탐색할 때는 처음부터 스캔해야 하기 때문에 O(n)의 복잡도를 가지는 단점이 있다. LinkedList 선언 방법 // 타입을 지정해 주지 않으면 Object로 선언됨 LinkedList list = new LinkedList(); LinkedList 데이터 처리 방법 // 리스트 생성 LinkedList list = new LinkedList(); // 리스트 맨 앞에 데이터 추가 list.addFirst(0); // 리스트 맨 .. 2022. 1. 30.
[JAVA] Queue 큐 / 백준 10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 큐란 FIFO (First In First Out) 선입선출 방식을 따르는 자료구조다 즉, 먼저 들어온 데이터가 가장 먼저에 나오며 가장 마지막 들어온 데이터가 가장 마지막에 나간다 사람들이 입장을 위해 줄을 서있고 맨 앞사람부터 줄을 빠져나가는 구조로 이해해보자 JAVA의 collections 프레임워크를 이용하면 큐를 쉽게 구현할 수 있지만, 구조적인 이해를 위해 배열을 이용하여 클래스로 구현해보겠다 1. 큐를 위한 클래스 선언 큐는 스택과 다.. 2022. 1. 29.
[JAVA/백준/4948] 베르트랑 공준 / 에라토스테네스의 체 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 이전에 풀었던 1978 문제와 풀이는 거의 똑같았다. 에라토스테네스의 체를 이용하여 소수를 찾고 입력값의 두 배만큼만 탐색하면 된다. 에라토스테네스의 체는 아래의 글을 참고한다. [JAVA/백준/1978] 소수 찾기 - 에라토스테네스의 체 풀이 방법 소수를 빠르게 찾는 방법은 에라토스테네스의 체라는 유명한 방법이 있다. 1. 1은 소수가 아니므로 제외한다. 2. 2는 소수이므로 소수 목록에 추가한다. 2의 배수는 소수가 아니므로 comibird.tisto.. 2022. 1. 28.