본문 바로가기

분류 전체보기

(146)
큐(Queue) 큐는 무엇인가? -한쪽끝에서 원소를 넣고 반대쪽 끝에서 원소를 뺄수 있는 자료구조 큐의 성질은? 원소의 추가가 O(1) 원소의 제거가 O(1) 제일 앞/뒤 원소 확인이 O(1) 제일 앞/뒤가 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능 큐의 용도는? - 선착순으로 해결해야 될때 쓰임 문제풀이에서 큐의 활용방식은? -BFS와 Flood Fill STL queue Q; Q.push(1); // 1 Q.push(2); // 2 Q.push(3); // 3 cout
세마포(Semaphores) 세마포(Semaphores) - 동기화 문제 해결을 위한 소프트웨어 도구 세마포의 구조 - value(number of permit), P 동작(acquire), V 동작(release) acquire(){ value = value - 1; if(value < 0){ acquire를 호출한 쓰레드를 큐안에 집어넣음(봉쇄) } } release(){ value = value + 1; if(value
데이터 표현과 연산 2의 보수를 쓰는 이유는? -다른 부호의 덧셈에서 뺄셈이 필요없음(덧셈으로 뺄셈까지 가능) -한개의 0으로 혼동(순환자리올림) 없음 cf. 1의 보수는 +0과 -0이 있음 -부호 확장 용이(MSB만 확장하면됨) 2의 보수에 대한 덧셈/뺄셈 연산 -두 수의 부호가 다를때: 자리 올림수 무시하고 10진수 연산하듯이 더한다. (무조건 범위안이기 때문) -두 수의 부호가 같을때 -오버플로우(V)가 발생하지 않았을때는 위 과정과 동일 -오버플로우(V)가 발생시 계산 불가(MSB 기준 Cin ⊕ Cout = 1이면 오버플로우(V) 발생) 덧셈/뺄셈기 구조
스택(Stack) 스택은 무엇은가? -한쪽 끝에서만 원소를 넣거나 뺄수있는 자료구조 스택의 성질은? 원소의 추가가 O(1) 원소의 제거가 O(1) 제일 상단의 원소 확인이 O(1) 제일 상단이 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능 스택의 용도는? 직전의 값을 저장(기억) 전체 값보다는 바로 직전값만 확인할때 거꾸로 출력하고 싶을때(함수 호출) 문제풀이에서 스택의 활용방식은? DFS 수식 괄호쌍 전위/중위/후위 표기법 STL stack s; s.push(1); // 1 s.push(2); // 1 2 s.push(3); // 1 2 3 s.push(4); // 1 2 3 4 cout
딥러닝 기초 용어 Supervised learning - learning with labeled examples (training set) Unsupervised learning -unlabeled data(google news grouping) type of supervised learning regression(점수로 딱) binary classification(둘중 하나) multi-label classification(학점별로)
프로세스 동기화 프로세스 동기화(Process synchronization) -임계구역 문제(Critical section) -공유데이터에 대한 동시(Concurrent)한 접근은 데이터의 비일관성(Inconsistency)를 초래 -해결책 -Mutual exclusion(상호배타): 오직 한 쓰레드만 진입 -Progress(진행): 진입결정은 유한시간 내 -Bounding waiting(유한대기): 어느 쓰레드라도 유한시간 내 진입가능 -주된 관심 -임계구역 문제 해결 -프로세스 실행 순서 제어(흐름 제어) -Busy wait등 비효율성 제거
연결리스트 연결리스트란 무엇인가? -원소들을 저장할때 그다음 원소가 있는 위치를 포함시키는 방식으로 저장하는 자료구조 연결리스트의 성질은? K번째 원소를 확인/변경하기 위해 O(K)가 소요됨 임의의 위치에 원소를 추가/제거는 O(1) 원소들이 메모리상에 연속해 있지 않아 Cache hit rate가 낮지만 할당이 쉬움 추가적으로 필요한 공간(Overhead)가 O(n)이 필요(주소값) 연결리스트의 종류 단일 연결 리스트 이중 연결 리스트 원형 연결 리스트 연결리스트의 용도는? 임의의 위치에서 원소를 추가/삭제가 빈번할때(ex. 메모장) 커서 이동이 빈번할때 STL list L = {1,2}; list auto t = L.begin(); L.push_front(10); // 10 1 2 cout
히스토그램과 이진화 히스토그램(histogram) -값들에 대한 빈도, 영상의 특성파악가능 -히스토그램 평활화(histogram equalization) -동적 범위를 늘려서 영상의 선명하게 함 -영상의 CDF를 이용하면됨. 즉 CDF가 Tranfer Function이므로 x를 CDF(x) 값으로 변환.(그래프로 확인가능) 이진화 -어떤 적절한 값을 기준으로 영상을 0과 1로 나눌때 사용 -오츄(Otsu) 알고리즘 -양분된 분산이 가장 작도록 하는 기준값을 찾는 알고리즘