본문 바로가기

분류 전체보기152

[LeetCode] Find Numbers with Even Number of Digits 목차 문제 int 배열이 주어졌을 때, 각 원소의 자릿수가 짝수개인 원소의 개수를 구하시오. 예시 Input: nums = [12,345,2,6,7896] Output: 2 Input: nums = [555,901,482,1771] Output: 1 제약조건 1 2024. 4. 7.
빅오(big-O) (시간복잡도) 목차 빅오 빅오(O, big-O)란 입력값이 무한대로 향할때 함수의 상한을 설명하는 수학적 표기 방법입니다. 이를 이용하여 알고리즘의 실행 시간(시간복잡도)이나 메모리(공간복잡도)가 입력 크기에 따라 어떻게 변화하는지를 대략적으로 표현할 수 있습니다. 알고리즘을 평가할 때는 최악의 경우, 평균적인 경우, 최선의 경우를 고려할 수 있는데, 빅오 표기법은 주로 최악의 경우(worst-case) 시나리오에 초점을 맞춥니다. 빅오 표기법을 사용할 때의 주의 사항 빅오 표기법은 최악의 경우를 나타내므로, 실제 실행 시간을 정확하게 예측하지는 않습니다. 빅오로 시간 복잡도를 표현할 때는 최고차항만을 표기하며, 계수는 무시합니다. 예를 들어 4n^2 + 3n + 4 번만큼 계산하는 함수가 있다면 이 함수의 시간 복잡.. 2024. 4. 7.
가상 메모리 목차 가상 메모리 가상 메모리란? 가상 메모리는 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 프로그램이 사용하는 주소 공간을 실제 물리적 메모리 크기와 무관하게 만들어주고 외부 단편화를 해결해주는 방법입니다. 이를 통해 물리적 메모리보다 큰 프로그램을 실행할 수 있게 하고, 메모리를 효율적으로 관리할 수 있도록 도와줍니다. 대표적인 가상 메모리 기법으로는 대표적으로 페이징과 세그멘테이션이 있습니다. 가상 메모리가 필요하게 된 배경 프로그램이 CPU에서 실행되려면 실행에 당장 필요한 부분이 메모리에 올라와 있어야합니다. 여러 프로그램이 동시에 수행되는 시분할 환경에서는 한정된 메모리 공간을 여러 프로그램이 조금씩 나눠서 사용해야 합니다. 따라서 운영체제는 어떤 프로그램에게 어느 정도의 메모리를 할당.. 2024. 4. 5.
교착상태(Deadlock) 목차 교착상태란? 교착상태(Deadlock)란 일어나지 않을 사건을 기다리며 진행을 멈춰버리는 현상입니다. 간단하게 두 프로세스예시를 들어본다면 프로세스 A는 프로세스 B가 사용 중인 자원을 기다리고, 프로세스 B는 프로세스 A가 사용 중인 자원을 기다리고 있는 상태입니다. 이럴 경우 서로 계속 기다리게만 될 것입니다. (교착상태) 비유를 통한 교착 상태 예시 도로에서의 교착상태 앞으로 지나가야하는데 차들이 가로막고 있어 지나갈 수가 없는 상태입니다. 교착상태(Deadlock)를 만드는 네 가지 조건 아래 4가지 조건을 모두 만족하는 경우라면 데드락이 발생합니다. Mutual exclusion(상호 배제) : 리소스를 공유해서 사용할 수 없는 경우(임계구역, CPU, 프린터 등) Hold and wait.. 2024. 4. 5.