-
오늘 페이스북(오큘라스) 온사이트에서 코딩퀴즈를 했는데
잘못 대답한다듯 하여 혹시 아시는 분있으시면 코멘트 부탁드립니다.SW engineer 이 아니라 computer vision 분야 경력자이긴 하지만 학부가 CS 아님
1. A^B
1.1 complexity: O(n) linear라고 대답했는데, 다른답을 유도 하는 것 같은데, 넘어갔음
1.2 코딩1
function(float A, int n){
if (!–n) return 1;
return A * function(A.n);
}1.2 스피디 코딩 요구
제가 좀 헤매기에 유도해서 hint 주었습니다
:
LUT[0] = 1;
LUT[1] = A;
while(i < n){
LUT[k] = LUT[k-1]*LUT[k-1];
k++;
i *= i;
}
if(n-i){
….
LUT[k-1] *= LUT[k-2]*LUT[k-3]….}
return LUT[k-1];2. Anxm 입력에서 ROI(관심 로컬 사각지역) 데이터 summation total
처음에 좀 이해를 못하기에, 3×3로 example해줌
**pre-processing 사용하라는 코멘트로 아래와 같이(여러번 시도후)
for (int y = 1; y< rows; y++) SUM[y][0] = A[y][0] + SUM[y-1][0] ;
for (int x = 1; x <cols; x++) SUM[0][x] = A[0][x] + SUM[0][x-1]for (int y = 1; y < rows; y++)
for(int x = 1; x < cols; x++)
SUM[y][x] = A[y][x] + SUM[y-1][x] + SUM[y][x-1] -SUM[y-1][x-1];return SUM[roi_y2][roi_x2] – SUM[roi_y1][roi_x2] – SUM[roi_y2][roi_x1] + SUM[roi_y1][roi_x1];
3.입력이 uchar cByte 인데, each bit에 몇개의 1 있는지 카운팅
if(cByte & 1)n++;
if(cByte & 2)n++;
if(cByte & 4)n++;
:
if(cByte & 124)n++;
8번 하면 카운팅 가능하다고 했는데, oneshot 할수 있냐? lut(룩업테이블)이용하여…
끝내 대답 못했음
******지금 생각해보니 256개 LUT 만들면 한번에 해결될듯 하네요 -.-대체적으로 쉬운 코딩퀴즈 였는데, 컴쌰학부가 아니다 보니
좀 해매긴 했습니다. 좋은 커멘트 부탁 드립니다