본문 바로가기

JavaScript

크래프톤 정글 week07, day57 - 잔디심기, 바이너리 세마포어로 alarm_sleep 진행 중 오늘의 잔디심기 백준 17204 자바스크립트 실버3 죽음의 게임 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().split("\n"); const TheGameOfDeath = (N, K) => { const order = []; for(let i = 1; i 더보기
크래프톤 정글 week07, day56 - 잔디심기, 동기화 코드 학습 중 오늘의 잔디심기 백준 24509 자바스크립트 실버5 상품의 주인은? const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().split("\n"); const itemMaster = (N) => { const studentScore = []; const item_master = []; for(let i = 1; i 더보기
크래프톤 정글 week07, day55 - 4BSD, Nice, Busy Waiting, 잔디심기 4BSD(4th Berkeley Software Distribution) 4BSD 스케줄링 또는 BSD 스케줄링은 미국 캘리포니아 대학 버클리의 CSRG(Computer Systems Research Group )에서 개발한 유닉스 운영 체제의 버전 중 하나인 BSD에서 사용된 스케줄링 방식이다. 4BSD 스케줄링은 다단계 멀티 피드백 큐 스케줄링(MLFQS)을 기반으로 하며, 프로세스의 특성에 따라 우선순위를 변경하는 동적 우선순위 결정 방식을 사용한다. 4BSD의 특징 대화형(Interactive) 프로세스와 배치(batch) 프로세스를 구분한다. 대화형 프로세스는 사용자와 상호작용을 많이 하므로 빠른 반응 시간이 요구되며, 배치 프로세스는 CPU를 많이 사용하므로 높은 처리량이 요구된다. 프로세스의.. 더보기
크래프톤 정글 week07, day54 - 평균 반응 시간, 다단계 피드백 큐 스케줄링, 잔디심기 평균 반응 시간(Average response time) 시스템이 사용자의 요청에 응답하는데 걸리는 시간의 평균을 의미하며, 특히 대화형 시스템에서 중요한 성능 지표로 사용되며, 사용자 경험에 큰 영향을 미친다. 평균 반응 시간 계산 먼저 요청의 반응 시간을 측정한다.(반응 시간은 요청이 시스템에 도착한 시점부터 시스템에 해당 요청에 대한 응답을 완료한 시점까지의 시간이다. 모든 요청의 반응 시간을 합산하며, 총합을 요청의 개수로 나눈다. 다단계 큐 스케줄링(MultiLevel Queue Scheduling, MLQ) 우선순위마다 준비 큐 형성 항상 가장 높은 우선순위 큐의 프로세스에 CPU를 할당 (우선순위가 낮은 큐에서 작업 실행 중이더라도 상위 단계의 큐에 프로세스가 도착하면 CPU를 빼앗는 선점형.. 더보기
크래프톤 정글 week07, day53 - CPU 스케줄링 알고리즘, 잔디심기 CPU 스케줄링 알고리즘 CPU 스케줄링은 다중 프로그램 환경에서 CPU의 사용 시간을 효율적으로 분배하기 위한 방법이다. 이를 통해 시스템의 성능을 최적화하고, 대기 시간을 최소화하며, CPU 사용률을 극대화하는 것이 목표이다. 알고리즘 종류 선입선출 스케줄링(First-Come, First-Served Scheduling - FCFS) 이 알고리즘은 먼저 도착한 프로세스부터 처리하는 알고리즘이다. 프로세스 실행 시간을 예측하기 쉽고 단순하고 공평하지만 CPU 버스트 시간이 긴 프로세스가 먼저 도착하면 다른 프로세스들은 긴 대기 시간을 감수해야 하는 ‘호흡성’ 문제가 발생할 수 있다. 최단 작업 우선 스케줄링(Shortest Job Next Scheduling- SJN) 이 알고리즘은 CPU 버스트 시.. 더보기
크래프톤 정글 week06, day52 - Tiny Server Code, 잔디심기 Tiny Server Code tiny.c 더보기 #include "csapp.h" void doit(int fd); void read_requesthdrs(rio_t *rp); int parse_uri(char *uri, char *filename, char *cgiargs); void serve_static(int fd, char *filename, int filesize, char *method); void get_filetype(char *filename, char *filetype); void serve_dynamic(int fd, char *filename, char *cgiargs, char *method); void clienterror(int fd, char *cause, char *er.. 더보기
자바스크립트 출력 시에 뜨는 특수 문자 제거 '-' 특수문자 제거 input.replace(/\-/g,''); 시작 부분의 공백 제거 input .replace(/^\s+/,''); 끝 부분의 공백 제거 input .replace(/\s+$/,''); 앞뒤 둘 공백 제거 input .replace(/^\s+|\s+$/g,''); 출력값의 모든 공백 제거 input .replace(/\s/g,''); \n(줄바꿈 문자) 제거 input .replace(/\n/g,''); \r(리턴 문자) 제거 input .replace(/\r/g,''); 백준 문제 풀 때나 배열로 받아온 문자를 출력할 때 출력값 뒤에 \r이나 \n이 붙는 경우가 있다. 위의 코드를 이용해 이 부분을 제거하여 깔끔하게 출력이 가능 더보기
크래프톤 정글 week06, day50 - Telnet, 잔디 심기 Telnet 로컬 네트워크 내에서 직접 연결된 것처럼 리모트 컴퓨터에 로그온하여 사용할 수 있도록 하는 프로토콜이다. 초기에 상용된 원격 접속 프로그램이며, 보안에 취약점이 많아 최근에 SSH로 대체되어 거의 사용하지 않는다. 실제로 사용하는 시스템(보통 pc)은 Telnet 클라이언트인데, Telnet서버는 클라이언트가 접속되어 있는 리모트 컴퓨터이다. TCP/IP는 클라이언트와 서버 모두를 지원한다. 가장 중요한 기능 중 하나는 Telnet 클라이언트와 서버 사이에서 데이터 스트림의 전송을 협상하는 기능이다. 이 협상 유형은 클라이언트 또는 서버가 요청을 시작하거나 받아들일 수 있게 한다. 오늘의 잔디심기 백준 1173 JavaScript 브론즈2 운동 const fs = require("fs"); .. 더보기