분류 전체보기 142

[프로그래머스] 디스크 컨트롤 (level3, c++)

문제 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) - B: 1ms부터 대기하다가, 3ms 시점에 작업을 시작해서 12ms 시점에 작업 완료(요청에서 종료까지 : 11ms)..

[운영체제] 페이지 교체 (Page replacement)

위 그림은 메모리 초과 할당(over-allocating memory) 상황을 나타내고 있다. 프로세스가 실행되는 동안 페이지 폴트가 발생한다. 운영체제는 필요로 하는 페이지가 보조저장장치에 저장된 위치를 알아내지만 valid한 프레임이 없음을 발견한다(모든 메모리 사용중). 이 상황에서 대부분의 운영체제는 스와핑과 페이지 교체를 함께 사용한다. Basic Page Replacement Demanding Paging은 요구되는 페이지만 backing store에서 가져온다. 하지만 프로그램들을 계속 실행함에 따라 요구 페이지가 계속 늘어나고, 언젠가는 메모리가 가득 차게 될 수 있다(memory full). 여기서 다른 프로그램이 새로 실행되거나 실행중인 프로세스가 다른 페이지를 요구한다면 이미 메모리에..

운영체제 2021.10.20

[프로그래머스] 보석 쇼핑 (level3, c++)

문제 개발자 출신으로 세계 최고의 갑부가 된 어피치는 스트레스를 받을 때면 이를 풀기 위해 오프라인 매장에 쇼핑을 하러 가곤 합니다. 어피치는 쇼핑을 할 때면 매장 진열대의 특정 범위의 물건들을 모두 싹쓸이 구매하는 습관이 있습니다. 어느 날 스트레스를 풀기 위해 보석 매장에 쇼핑을 하러 간 어피치는 이전처럼 진열대의 특정 범위의 보석을 모두 구매하되 특별히 아래 목적을 달성하고 싶었습니다. 진열된 모든 종류의 보석을 적어도 1개 이상 포함하는 가장 짧은 구간을 찾아서 구매 예를 들어 아래 진열대는 4종류의 보석(RUBY, DIA, EMERALD, SAPPHIRE) 8개가 진열된 예시입니다. 진열대 번호 1 2 3 4 5 6 7 8 보석 이름 DIA RUBY RUBY DIA DIA EMERALD SAPP..

[백준] 9328번: 열쇠 (c++)

문제 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 필요하다. 상근이는 일부 열쇠를 이미 가지고 있고, 일부 열쇠는 빌딩의 바닥에 놓여져 있다. 상근이는 상하좌우로만 이동할 수 있다. 상근이가 훔칠 수 있는 문서의 최대 개수를 구하는 프로그램을 작성하시오. https://www.acmicpc.net/problem/9328 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 문제조건 첫째..

알고리즘/BOJ 2021.10.19

[Javascript] Class

❗ Javascript의 Class는 syntatic suger일뿐 새로운 문법이 아닙니다. prototype의 이해를 기반으로 공부하는 것을 추천합니다. c++나 java의 Class와는 다르게 프로토타입 기반의 언어입니다. Class는 특별한 함수이다. 다른 함수들과 동일하게 class 표현식과 class 선언식으로 정의할 수 있다. // class 선언식 class Rectangle { constructor(height, width) { this.height = height; this.width = width; } } // class 표현식 var Rectangle = class { constructor(height, width) { this.height = height; this.width = w..

JavaScript 2021.10.18

[운영체제] 가상 메모리, 요구 페이징

가상 메모리(Virtual Memory) 가상 메모리는 물리 메모리 크기의 한계를 극복하기 위해 나온 기술이다. 즉, 물리 메모리보다 큰 프로세스를 수행하기 위해 가상 메모리를 사용한다. 실제 프로그램들을 살펴보면 많은 경우에 프로그램 전체가 메모리에 늘 올라와 있어야 하는 것은 아니라는 것을 알 수 있다. 오류 처리 코드, 옵션, 사용 되지 않는 배열 등은 실질적으로 거의 발생하지 않는다. 프로세스는 실행에 필요한 부분만 메모리에 올림으로써 메인 메모리에 올라가는 프로세스의 크기를 줄일 수 있다. 요구 페이징(Demand Paging) 필요한 페이지만 적재하는 방법을 요구 페이징(Demand Paging)이라고 하며 가상 메모리 시스템에서 가장 일반적으로 사용된다(가상 메모리를 만드는 방법은 두가지가 ..

운영체제 2021.10.18

MVC 패턴이란?

MVC패턴은 모델, 뷰, 컨트롤러(Model, View, Controller)의 줄임말으로 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다. 💡 디자인 패턴이란? 건축으로치면 공법에 해당하는 것으로, 소프트웨어의 개발 방법을 공식화 한 것이다. 소수의 뛰어난 엔지니어가 해결한 문제를 다수의 엔지니어들이 처리 할 수 있도록 한 규칙이면서, 구현자들 간의 커뮤니케이션의 효율성을 높이는 기법이다. Model : 백그라운드에서 동작하는 로직을 처리한다. (데이터를 가진 객체, 파라미터로 주로 쓰인다. DB의 테이블과 대응하는 경우가 많다.) View : 사용자가 보게 될 결과 화면을 출력한다. Controller : 사용자의 입력처리와 흐름 제어를 담당한다. (사용..

WEB 2021.10.15

[백준] 2239번: 스도쿠 (c++)

문제 스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다음을 보자. 위 그림은 참 잘도 스도쿠 퍼즐을 푼 경우이다. 각 행에 1부터 9까지의 숫자가 중복 없이 나오고, 각 열에 1부터 9까지의 숫자가 중복 없이 나오고, 각 3×3짜리 사각형(9개이며, 위에서 색깔로 표시되었다)에 1부터 9까지의 숫자가 중복 없이 나오기 때문이다. 하다 만 스도쿠 퍼즐이 주어졌을 때, 마저 끝내는 프로그램을 작성하시오. 2239번: 스도쿠 스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까..

알고리즘/BOJ 2021.10.13

[Node.js] express로 SNS 만들기

제로초님의 Node.js교과서 9장을 공부하며 express로 최대 140글자의 글과 사진을 올릴 수 있는 SNS를 만들어 보았다. express와 sequelize를 주로 사용하여 구현하였다. 책에서 주어진 기능 로그인 (로컬 로그인, 카카오 로그인), 로그아웃 - passport모듈 글 올리기 (사진 첨가, 해시태그) - multer 모듈 팔로우 스스로 추가한 기능 글 삭제 (사진 있을 시 사진까지) 닉네임 변경 언팔로우 기존 SNS들과 유사하게 로그인을 하면 글을 작성할 수 있으며, 다른 사용자를 팔로우/언팔로우 할 수 있고 다른 사용자들이 작성한 글을 읽을 수 있는 서비스이다. 데이터베이스 세팅부터 라우터 설정까지 직접 해 보았다. 데이터베이스를 이론으로만 공부하다 보니 익숙하지는 않았지만 seq..

프로젝트 2021.10.12
반응형