이번 포스팅은 반효경 교수님의 KOCW 운영체제 강의를 듣고, 해당 내용을 개인적으로 정리해본다. 틀린 부분이 있을 수 있으니, 애매한 부분은 반드시 강의 다시 한번 살펴보기 운영체제란? 운영체제는 컴퓨터 H/W 위에 올라가는 S/W며, 각종 S/W와 사용자, 그리고 H/W를 연결해주는 역할을 하는 S/W다. 운영체제의 목적 컴퓨터의 사용을 편리하게 해주며, 각 프로그램마다 독립적인 결과를 나타낼 수 있도록 한다. 컴퓨터의 자원을 관리하여 성능을 최대한으로 낼 수 있도록 돕는다. - 효율성 : 적절하게 자원을 분배하여 최대한의 성능을 낸다. - 형평성 : 특정 프로그램에만 많은 자원이 분배되지 않는다. 운영체제는 각 프로그램마다 독립적인 결과를 나타낼 수 있도록 한다. 운영체제는 각 프로그램을 추상화 시..
인터넷 네트워크 구조 들어가기 전 인터넷 네트워크 구조에는 IP, TCP, UDP, DNS, PORT가 있다. 우리가 누군가에게 메세지를 보낼 때, 위와 같은 형태로 동작한다. 클라이언트(나)가 데이터 발송을 요청하면, 데이터는 Internet으로 표현되는 수많은 노드를 여러가지 방식으로 타고, Server에 데이터가 전달되는 방식이다. 아래에는 이런 인터넷 네트워크 통신을 하는데 필요한 통신 규약 등을 이야기 한다. IP(Internet Protocol) 클라이언트와 서버가 통신을 하는데 필요한 최소한의 규칙 IP는 출발지 IP 주소에서 목적지 IP 주소로 정보를 '패킷'단위로 전달한다(앞으로 IP 패킷을 전달한다고 표현한다) IP 패킷 정보 IP 패킷 정보에는 보내고자 하는 데이터, 출발지 IP 주소..
1. 투 포인터는 정렬된 상태가 기본이 되어야 한다. 그렇지 않을 경우, 앞뒤의 상관관계가 전혀 없기 때문에 특정 쿼리 후 인덱스 변경에서 논리성이 없어진다. 2. 투 포인터는 같은 지점에서 시작하는 것이 있고, 양끝에서 시작하는 것이 있다. 상황에 맞게 써야하는데, 아직까지는 내가 구분이 정확히 안된다. 구분이 되면 업데이트 할 것. 3. 투 포인터는 인덱스를 옮길 때, 논리적으로 헛점이 없다는 것이 확인되고 난 다음에 쓰는게 맞다. 9007 카누선수 중간에서 만나기로 배열을 2개로 만들어준다. 배열을 2개로 만들어 준 다음에 각각 정렬을 하고, 두 포인터로 접근해서 센다. 이 방법은 이분탐색보다 더 빠르게 동작한다. 7453 합이 0인 네 정수 이 문제는 완전탐색으로 풀 경우 4000^4이 되어서 말..
이분탐색은 기본적으로 탐색의 범위가 굉장히 넓을 때는 반드시 떠올려야 한다. 또한, 특정 구간의 최대, 최소값을 구하라고 할 때도 파라메트릭 서치 개념으로 접근이 가능하기 때문에 반드시 떠올려야 한다. 이분탐색은 반드시 정렬이 필요하기 때문에 리스트라면 정렬은 무조건 해야한다. 이분탐색을 사용할 때 각 파라메터의 의미는 다음과 같다. L < R vs L
중간에서 만나기 알고리즘 1. 전체 샘플을 절반으로 쪼개서 샘플 자체를 줄이는 방법 1208 → 2^N → 2^(n/2) * 2^(n/2) 2. 샘플은 그대로 두지만, 문제 풀이를 절반으로 쪼개서 시간을 줄이는 방법 2295 → N^4 → 2*N^2 * LogN