공부/Algorithm
-
[BOJ] 16236번 아기 상어공부/Algorithm 2021. 8. 16. 21:08
처음 DFS로 접근했다가 갈아엎게 됐다... 역시 문제 해석에 많은 시간을 투자해서 가닥을 잘 잡아야 함을 뼈저리게 느꼈다. 본 문제를 풀면서 BFS로 방향 탐색조건을 단순히 상, 좌, 우, 하 로 하여 탐색된 물고기 후보들 중 첫번째 것을 선택하면 되리라 생각하고 풀었지만 그런 단순한 조건으로 풀리는 문제는 아니었다. 주의할 점 해당 문제는 최소 거리가 가장 우선순위 조건인 문제로, DFS보다는 BFS가 적합하다. 상어로부터 동일한 거리를 갖는 물고기들에 대해 아래를 주의해야 한다. 문제에서 언급한 조건은 단순히 행 인덱스가 가장 낮은, 그 중에서도 열 인덱스가 가장 낮은 물고기를 의미하므로, BFS로 탐색한 물고기 순서를 그대로 사용하면 안됨! (BFS로 탐색한 순서는, 상어로부터 출발한 물고기들의 ..
-
C - strncat() 함수 제대로 사용하기 (버퍼 오버플로우 방지)공부/Algorithm 2021. 7. 22. 12:25
Dependency #include 내용 설명 실무에서 strncat() 함수는 strcat()의 사용으로부터 발생할 수 있는 버퍼오버플로우를 방지하여 안전하게 사용하기 위해 사용한다. 배경 지식 char a[32] = "Hello" char b[32] = "World!" a는 1바이트씩 다음과 같이 저장되어 있다. -> H, e, l, l, o, \0(Null terminator) b는 1바이트씩 다음과 같이 저장되어 있다. -> W, o, r, l, d, \0(Null terminator) 예를 들어 printf나 sprintf와 같은 문자열 출력 함수를 이용해 아래와 같은 구문으로 문자열을 출력한다고 하였을 때 printf(a) // Hello printf(b) // World! 컴파일러는 a, b..
-
Hash, Hash function는 무엇일까? (해시 값 및 해시 함수 설명)공부/Algorithm 2020. 5. 30. 20:44
우선 위키피디아에 검색하면 다음처럼 설명한다. 해시 함수란, '임의의 길이의 데이터'를 '고정된 길이의 데이터'로 매핑하는 함수이다. 이렇게 매핑된 함수의 출력을 '해시'라고 부른다. 이러한 해시 함수는, 매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어에 널리 사용된다. 즉, 예를 들어 32bit, 64bit, 128bit 등 임의의 N-bit 데이터를 갖고있을때, 이 데이터를 16bit와 같은 적은 bit의 데이터로 매핑하는 방법에 대한 설명이다. 64bit 데이터를 16bit의 데이터로 변환하는 간단한 해시 함수는 다음과 같다. int16 hashfunction( int64 i ) { int16 hash = (int16)(i & 0xFFFF); hash ^= (int16)((i >> 16) & 0xF..
-
(Remote Sensing) Multispectral, Hyperspectral image의 차이공부/Algorithm 2020. 5. 5. 15:06
인간의 눈은 가시광선 (380nm ~ 700nm) 스펙트럼내의 빛을 식별할 수 있다. 하지만, 인간이 아닌 다른 동물들은 저마다 다른 스펙트럼대의 빛을 식별할 수 있는데, 금붕어는 적외선 (700nm ~ 1mm) 스펙트럼내의 빛을 식별할 수 있으며 꿀벌은 자외선 (10nm ~ 380nm) 스펙트럼내의 빛을 식별할 수 있다. 그렇다면, 금붕어와 인간, 꿀벌의 눈을 합치면 적외선, 자외선, 가시광선 모두 볼 수 있다는 뜻이 되는데 인간들은 이를 sensor를 통해 해결하고자 한 것이다. 그렇게 시작된 개념이 Multispectral, Hyperspectral image 이다. Multispectral(MS)과 Hyperspectral(HS)의 차이는 스펙트럼을 나누는 밴드의 갯수와 그 밴드의 폭에 의해 차이..
-
(Remote Sensing) Pansharpening, Pansharpened image 는 무엇일까?공부/Algorithm 2020. 5. 5. 13:19
대학원 전공강의로 Remote sensing 강의를 수강중인데 Pansharpening에 대해 공부하게되어 글을 남긴다. Remote sensing에서 많이 사용되는 Pansharpening이란, wikipedia에서 다음과같이 설명한다. Low-res color bands (MS image) + High-res grayscale band (Pancromatic image(PAN)) = Hi-res color image 예를 들어, SPOT 6, 7 위성은 각각 1.5m와 6m의 공간해상도를 갖는 single-band panchromatic 이미지와 4-band multispectral 이미지를 촬영할 수 있으며, WorldView-4 위성은 각각 0.31m와 1.24m의 공간해상도를 갖는 single-..