본문 바로가기

컴퓨터과학3

[해시 알고리즘] 옷 입는 경우의 수 구하기 '위장' N(= 착용하는 경우의 수) + 1(=착용하지 않는 경우) * 옷 타입 개수 - 1(=모두 착용하지 않는 경우) 예) 모자: 2, 안경:1일경우, 착용하지 않았을 경우의 수: (2+1) * (1+1) 모두 착용하지 않았을 경우를 제외하기 위해 마지막에 1을 빼줌. (무조건 하나 이상은 걸친다고 했으므로) 입력값: [["yellowhat", "headgear"], ["bluesunglasses", "eyewear"], ["green_turban", "headgear"]] 1. 해시 키-값 맵 역전 방식을 이용한 뒤 키 중복 여부를 체크해서 카운트를 계산해줌. const getTypeCount = clothes.reduce((cloth, [value, key])=>{ cloth[key] = cloth[key.. 2021. 10. 14.
[정렬 알고리즘] h-index 구하기 h-index을 구하는 공식: 오름차순 정렬 후, h-index 공식처럼 자신의 인용횟수(=citations[i])가 자신보다 인용횟수가 많은 논문 수(=[i])와 같아 질때를 구하기 function solution(ct) { ct = ct.sort((a,b)=>b-a); // 오름차순 정렬 var i = 0; while ( i + 1 2021. 10. 14.
상호배제 알고리즘와 세마포어 동시 프로그래밍에서 공유 불가능한 자원의 동시 사용을 피하기 위해 사용되는 알고리즘. 상호 배제(mutual exclusion)와 임계 영역(critical section) - 임계 영역: 멀티 프로세스 환경에서 둘 이상의 프로세스가 동시에 접근해서는 안되는 공유 자원의 코드 영역. 즉, 경쟁 조건이 발생 할 수 있는 프로그램 코드 부분으로 임계 구역 문제를 해결하기 위해 3가지가 필요하다. (임계 영역만으로 경쟁 조건이 만들어지지 않을 경우 공유 메모리를 사용하는 병렬 프로세스가 올바르게 수행되려면 마지막 조건이 추가적으로 필요.) Mutual exclusion(상호배제): 두 개 이상의 프로세스들이 동시에 임계 영역에 있지 않도록 함. Progress(진행): 임계 구역 밖에 있는 프로세스가 다른 프.. 2021. 10. 5.