프로그래머스의 문제를 해결하던 중 DFS와 BFS라는 개념이 등장했다. 깊이우선탐색, 너비우선탐색이라는 말로도 불리는 두개의 개념에 대해서 정확히 알지 못해서 유튜브 강의를 보고서 이와 관련된 내용을 알아가던 중 DFS,BFS를 알기 위해서는 먼저 스택, 큐, 재귀함수
교집합과 합집합 우리가 평상시에 사용하는 집합의 경우는 중복된 수가 포함되지 않는다. 예를 들어 a = [1,1,2,3] 리스트가 있고 이를 집합으로 표현하게 되면 a= {1,2,3}으로 중복된 1은 사라진게 된다. 이는 집합의 성질로 중복된 값을 허용하지 않는것이다. 그렇기 때문에 집합 a, b에 대한 교집합과 합집합을 구하게 되며, 아래와 같은 형태가...
프로그래머스 문제를 풀던 중 이전에 문제를 풀었던 올바른 괄호인지를 판단하는 문제가 다시 등장했다. 그래서 이전과 같은 방식으로 풀이를 하려고 했는데, 세상이 그렇게 만만하지 않죠!!!! 이전문제와는 다른 문제가 있는데, 바로 여러 괄호가 등장한다는 것이다. 이전문제의
회고 이번에 문제에서 새로운 것을 알게 되었다. itertools의 combinations이다. 리스트안의 조합을 만들어주는 메서드로 내가 구현한 코드의 경우 for문을 이용해서 각 요소를 돌면서 조합을 만들었다면, combinations은 단순히 메서드만을 이용해서 바로 똑같은 코드를 구현할 수 있다. 파이썬에는 정말정말 다양한 메서드가 존재한다. 아...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 Disk 디스크는 어떤 구조로 되어 있는가? 디스크를 관리하는 단위는 내부와 외부에 따라서 그 단위가 다르다. 내부의 경우 디스크 관리 단위가 Sector(섹터) 이다. 그리고 섹터의 데이터를 읽고 쓰라는 명령은 디스크 컨트롤러가 직접관리한다. 외부의 ...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 File system Implementation 파일접근 방법 순차접근과 직접접근 a,b,c라는 내용이 있다면 순차접근은 a, b, c 순서데로 접근을 해야한다. 직접접근은 c로 a로 직접 접근이 가능하다. 다시말해, 파일에 접근하는 방법에는 순차접근...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 File File(파일) 이란 하드디스크에 저장하는 단위로 알려져 있다. 앞서 본 메모리의 경우 데이터를 주소를 통해서 접근하는 장치였다. 디스크는 저장하는 파일을 이름을 통해서 접근한다. 파일이란 관련된 정보를 이름을 가지고 저장하는 것이다. 일반적으...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 가상메모리 다양한 캐시 환경 앞선 살펴본 가상 메모리의 페이지교체 알고리즘은 메모리에만 적용되는 것이 아닌 컴퓨터 시스템에서 다양하게 사용되어진다. 그 중 캐쉬환경에서 페이지교체 알고리즘이 적용된다. 캐시메모리란 한정된 빠른 공간(캐시)에 데이터를 저장...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 Virtual Memory(가상메모리) **_앞서 본 논리주소를 물리주소로 변경하는 것은 하드웨어가 담당한다. 물리적메모리의 주소변환에 운영체제가 관여하지 않는다. 단, 가상메모리는 운영체제가 관여한다._** 가상메모리란 프로세스가 실행되기 위해서는 메...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 Segmentation기법 페이징기법은 프로그램을 주소공간을 같은 크기의 페이지 단위로 쪼개는 것이다. 세그멘테이션기법은 프로그램의 주소공간을 의미 단위로 쪼개는 것이다. 프로세스가 실행되면 code, data, stack이 각 프로세스 별로 주소공간에 ...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 물리적메모리 관리 방법_불연속할당 사용자 프로세스를 물리 메모리에 할당하는 방법은 크게 두가지로 나뉜다. 연속할당(프로그램을 통째로 올리는방법)과 불연속 할당이 있다. 연속할당의 경우 주소변환이 간단했다. 연속할당에서 프로그램의 논리적주소를 물리적인 주소...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 Memory Management 메모리는 주소를 통해서 접근하는 매체이다. 메모리는 2가지 주소료 표현할 수 있다. 논리적인 주소 물리적인 주소 논리적주소는 프로그램이 시작되면 독자적인 공간이 생성된다. 프로그램,프로세스 마다 가지는 메모리주소가 논리적...
회고? 어려웠다. 테스트케이스를 계속 하나씩 통과를 하지 못해서 어떻게 하면 문제를 해결할 수 있을지 생각하고 생각했다. 테스트케이스를 하나씩 틀리다보니 무언가 하나만 바꾸어 주면 가능할 거 같아서 계속 같은 코드만 보고 있다. 거의 다 풀이된 문제를 계속 보는 것 만큼 답답한 것도 없다. 잘못된게 없는데 왜 틀리는지 알수가 없다..... 문제는 ...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 Deadlock 교착상태 무엇인가? 사거리가 완전히 막혀있는 상태에 해당한다. 위의 그림은 더이상 이동할수 있는 방법이 없는 상태이다. 누군가가 희생을 하게 되면 교착상태가 발생하지 않지만, 자원을 가지고 있으면서 다른 자원을 요청하기 때문에 교착상태가...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 Process Synchronization 앞서 프로세스 동기화문제를 해결하기 위한 방법설명 소프트웨어적으로 해결방법 test&set이라는 하드웨어적인 해결방법 추상자료형 세마포어 해결방법 >#### 세마포어 세마포어의 p연산과 v연산이 있는 추상자료형이...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 Process Synchronization 동기화 Problem 공유데이터에 접근하는 코드를 critical section(임계구역)이라고 했다. 어떤 프로세스 간에 공유데이터를 접근하거나, 접근하지 않거나를 반복하는 것으로 동작한다. 공유데이터를 동시...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 process synchronization 프로세스 동기화 데이터의 접근 패턴 테이터가 저장된 위치에서 읽어와서 연산을 하고, 연산 결과를 원래 위치에 저장하는 것을
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 CPU Scheduling 컴퓨터시스템 안에 있는 프로세스에는 I/O 바운드잡도 있고 CPU 바운드잡도 섞여 있기 때문에 CPU Scheduling이 필요하다. FCFS의 경우는 cpu오래 사용하는 프로세스가 먼저 cpu를 잡게 되면, 뒤에 오는 프로세스...
알고리즘 평가 & 디버깅 어떤 알고리즘을 사용해야 할까? 코딩문제를 풀면 사람들마다 해결하는 방법이 제각각이다. 코딩은 문제 해결에 있어서 정답은 없으나, 효율적인 것은 있다. 예를 들어 A와 B가 문제를 풀었고, 둘다 정답이다. A는 문제를 푸는데, 1초가 걸렸고, B는 10초가 걸렸다. 누가 더 효율적으로 문제를 풀었다고 할 수 있을까? 정답은 A...
http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 cpu scheduling 전반적인 설명 프로그램이 실행이 되면 어떤 프로그램이 던 간에 위의 절차를 따라서 실행되며 진행된다. load store, add store cpu에서 인스트럭션을 실행하는 것이다. I/O작업을 하면 I/O작업을 하다가 다시 ...