본문 바로가기

Computer Science

(45)
[OS] 운영 체제의 개요 - 운영 체제의 기능 운영 체제의 역할은 두 가지로 나뉜다. 하나는 하드웨어적 역할, 다른 하나는 사용자에 대한역할이다. (1) 하드 웨어적 역할 - 사용자가 알기 힘든 각종 하드웨어를 운영 체제가 직접 관리하는 역할 (2) 사용자에 대한 역할 - 사용자에게 편리한 인터페이스를 제공 즉, 운영 체제의 기능은 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공(2)하고 컴퓨터 시스템 내의 자원을 효율적으로 관리하는 것.(1) (주요 역할) 편리한 환경 제공이란 운영 체제가 동시 사용자 및 프로그램들에게 각각 독자적으로 컴퓨터를 사용하는 것과 같은 환상을 제공하는 것을 말한다. 즉, 위 그림에서 보듯 사용자가 프로그램에 관해서 알지 못하더라도 프로그램을 실행할 수 있게 해주는 일이다. 예를들어, 사용자는 파일이 어떻게 복사되고..
[OS] 운영 체제 개요 - 운영 체제의 정의 운영체제(operating system)의 정의 운영 체제란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어이다. 보통 시스템(System)이란 용어는 하드웨어를 지칭하는 데 주로 사용되는데, 왜 운영 체제(Operating system) 은 소프트웨어 말할까? 운영 체제는 하드웨어와 한 몸이 되어야만 사용자에게 쓰일 수 있는 컴퓨터 시스템이 된다. 즉, 컴퓨터 전원만 켜고 운영 체제가 없을 경우에는 단순한 고철 덩어리에 불과하다. 컴퓨터라는 고철 덩어리를 사용자가 쉽게 컨트롤 할 수 있는 상태가 되게 하기 위해 운영 체제를 설치한다. 각종 소프트웨어들을 컴퓨터 하드웨어와 운영 체제 위에서 실행된다. 컴퓨터 전원을 키면 운영 체제도 동시에 실행이 된다. 보통 소프트웨어가 컴퓨터 시스템에서 수행되기 위해 ..
[BOJ 6064] 카잉 달력 접근 방법 : 저번에 풀었던 '날짜 계산' 문제와 유사하다. 똑같은 방법으로 풀려고 했지만 시간초과가 나서 당황했다. M과 N값의 범위가 40000이므로 처음부터 M*N 까지 탐색을 시도했다간 엄청난 연산 숫자에 시간초과가 난다. 따라서 더 효율적인 방법을 찾아야 했는데 내가 생각해낸 방법은 아래와 같다. L번째 년도라고 했을 때 L = M*(몫) + x (주어진 x 값) 을 만족한다. 따라서 몫을 반복문을 증가시키면서 일단 x가 의미하는 L 번째 연도를 찾고 그 L번째 년도가 (L-y) / N 을 만족한다면 찾은 L 값이 정답이 된다. L의 범위는 최대 M*N을 넘지 않으므로 반복문을 M*N까지 돌려준다. 만약 L 값이 M*N 값을 넘게 되면 -1을 리턴한다. 12345678910111213141516..
[BOJ 14500] 테트로미노 접근 방식 : 어떻게 접근해야 할지 몰라서 http://suriisurii.tistory.com/26 surisuri 님 풀이 방법을 참고해 풀었다. ㅗ ㅓ ㅏ ㅜ 도형을 제외한 모든 도형이 dfs로 접근 가능하다는 사실을 깨닫지 못해서 힘들었던 것 같다. ㅗ ㅓ ㅏ ㅜ 도형을 따로 만들어 둔 뒤에 완전 탐색을 돌리면서 최댓값을 뽑아냈다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include #include using namespace std;int N, M;int dx[4] = { -1,1,0,0 };int dy[4] ..
[BOJ 1107] 리모컨 접근 방식 : 채널 0 번부터 차례대로 가면서 목표 채널과 차이의 최솟값을 출력했다. 반복문을 돌면서 해당 채널로 갈 수 있는 버튼이 고장나지 않았다면 목표채널과 해당채널의 차이의 최솟값을 갱신했다. 디폴트 채널이 100이므로 100에서 +,- 로만 목표채널로 갈 수 있는 값을 저장하여 번호 입력으로 이동할 수 있는 최솟값과 비교했다. 0번 채널의 예외처리를 안했다가 엄청 틀렸다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657#include #include #define Min(a,b) a N >> M; for (int i = 0; i > c; remote[c] ..
[BOJ 1476] 날짜 계산 접근 방식 : E, S ,M 값의 주기는 1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19 이다. 준규가 사는 나라의 년도를 X로 했을 때, 입력으로 주어지는 E,S,M은 X를 각 변수의 최대값으로 나눈 나머지라고 볼 수 있다. 즉, E를 예로 든다면 X = aM + E (M은 몫) 관계가 성립한다. 따라서 X의 값은 X-E, X-S, X-M 을 각각 15, 28, 19 로 나누었을 때 동시에 나머지가 0이 되는 숫자중 최솟값이다. 1년도부터 시작해서 하나하나 체크하면서 X 값이 될 수 있는지 판단했다. 문제는 범위를 어디까지 돌려야하냐는건데 세 수의 주기를 보면 15,28,19 인데 이 세 수는 모두 서로소이다. 세 수가 모두 서로소 라는건 주기가 15*28*19라는 얘기다. 예를 들어 E..
[OS] 책 설명이 x같아서 내가 쉽게 쓴 B 트리 파일 처리 시험 공부를 하다가 너무 말이 어려워서 저만의 방식으로 다시 정리해봤습니다. 왜 말을 그렇게 어렵게 쓰는지... 일단 B트리가 뭔지 알아보자. ●B 트리 개요 (1) B 트리의 정의 : B 트리는 데이터를 정렬하여 탐색, 삽입, 삭제 및 순차 접근이 가능하도록 유지하는 트리형 자료구조 이다. 그냥 한 마디로 데이터를 쉽게 다룰 수 있게 하는 자료 구조의 일종이다. 그렇다면 왜 B 트리를 쓰는가 ? B 트리는 Balanced- Tree 의 일종으로 트리의 균형이 맞다. 즉 트리내에서 삽입과 삭제가 일어나더라도 최대한 균형있는 트리 형태를 유지하여 이진 탐색의 장점을 살린 트리다. 균형이 맞춰진 트리의 장점이 뭘까? 바로 이진 탐색을 활용할 수 있다는 점이다. 아래는 편향 트리이다. 편향 트리란 ..
삼성 S/W expert 2115번 벌꿀 채취 2115번 벌꿀 채취- N*N 크기의 map에 벌꿀의 양이 각각 들어가 있다. 2명의 사람이 벌꿀을 채취하는데 벌꿀을 가로 형태로만 채취할 수 있고 주어진 통의 갯수만큼만 채취 가능하다. 예를 들어 M=2 이면 {(0,0), (0,1)} 칸의 벌꿀을 채취할 수 있다. 채취한 벌꿀을 제곱하고 더해 Profit을 계산할 수 있다. 8, 9를 채취했다면 64+81 = 145 가 Profit이 된다. 여기서 최대로 채취할 수 있는 벌꿀의 양이 주어진다. 2명의 사람이 영역을 겹치지 않고 벌꿀을 채취했을 때 가장 큰 Profit을 구하는 문제다. - 우선 2명의 사람이 겹치지 않게 영역을 나눴고, 최대 이익을 산출하기 위해 비트 마스킹으로 나올 수 있는 모든 이익을 계산했다. 12345678910111213141..