CS 101 (26) 썸네일형 리스트형 [Python] 문자열에서 숫자만 추출하기 1. 모든 숫자들을 1개의 문자열로 추출 : re.sub()sub()는 string에서 pattern과 일치하는 문자들을 repl로 교체합니다.re.sub(pattern, repl, string) 다음과 같이 sub()를 사용하여 문자열에서 숫자가 아닌 문자를 모두 제거하고 숫자로 구성된 문자열을 만들 수 있습니다.import restring = 'aaa1234, ^&*2233pp'numbers = re.sub(r'[^0-9]', '', string)print(numbers) Output:123422332.연속된 숫자들을 추출하여 List로 리턴 : re.findall()re.findall(pattern, string)은 string에서 pattern에 해당하는 내용들을 찾아서 리스트로 리턴합니다. r'.. 페이지 교체 알고리즘 - LRU(Least recently used) 페이지 교체 알고리즘 페이징 기법. 메모리 관리하는 os에서, 페이지 부재가 발생하여 새로운 페이지를 할당하기 위해, 현재 할당된 페이지 중 어느것과 교체할 지 결정하는 방법 FIFO - first in first out LFU - least frequently usedLRU - least recently used Cache Cache Hit - 캐시 메모리에 찾는 데이터가 존재 Cache Miss - 캐시 메모리에 찾는 데이터가 존재하지 않음 -> 메모리 저장소로부터 필요한 데이터를 찾아 캐시메모리에 로드 LRU 알고리즘 참조 스트링 순서대로 저장4초 - 1이 재참조 되었으므로, 순서 변경6초 - cache size 가 찻으므로, least recently used item 제거 , 5 저장 ca.. [DP] Dijkstra 다익스트라 알고리즘 가중치가 모두 양수일때만 사용 가능 다익스트라(dijkstra) 알고리즘은 그래프에서 한 정점(노드)에서 다른 정점까지의 최단 경로를 구하는 알고리즘 중 하나이다. 이 과정에서 도착 정점 뿐만 아니라 모든 다른 정점까지 최단 경로로 방문하며 각 정점까지의 최단 경로를 모두 찾게 된다. 매번 최단 경로의 정점을 선택해 탐색을 반복하는 것이다.참고로 그래프 알고리즘 중 최소 비용을 구하는 데는 다익스트라 알고리즘 외에도 벨만-포드 알고리즘, 프로이드 워샬 알고리즘 등이 있다. 1. 출발 노드와 도착 노드를 설정한다.2. '최단 거리 테이블'을 초기화한다.3. 현재 위치한 노드의 인접 노드 중 방문하지 않은 노드를 구별하고, 방문하지 않은 노드 중 거리가 가장 짧은 노드를 선택한다. 그 노드를 방문 처리한다... [MST 최소신장트리] Kruskal & Prim Spanning Tree 신장트리?그래프 내의 모든 정점을 포함하는 트리 Spanning Tree는 그래프의 최소 연결 부분 그래프 이다. (최소 연결 = 간선의 수가 가장 적다.)n개의 정점을 가지는 그래프의 최소 간선의 수는 (n-1)개이고, (n-1)개의 간선으로 연결되어 있으면 필연적으로 트리 형태가 되고 이것이 바로 Spanning Tree가 된다.하나의 그래프에는 많은 신장트리가 존재할 수 있다. MST minimum spanning tree란? spanning tree중에서 사용된 간선들의 가중치 합이 최소인 트리 MST의 구현방법 Kruskal MST 알고리즘 greedy method 를 아용하여 네트워크의 모든 정점을 최소 비용으로 연결하는 최적 해답을 구하는 것 [과정]1. 그래프.. [IT 기술면접] 2 운영체제프로세스프로세스와 스레드의 차이는 무엇인가요?스레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위. 스레드가 여러개 있으면 우리가 파일을 다운받으면서 동시에 웹서핑 가능. 스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 일부가 되기 때문에 동시 작업이 가능한 것이다. 교착상태란 무엇이며, 교착상태가 발생하기 위해서는 어떤 조건이 있어야 하나요?교착상태란 두 개 이상의 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며, 서로의 작업을 끝나기만을 기다리며 둘 다 영원히 끝나지 않는 상황발생조건 상호배제 - 한번에 한개의 프로세스만이 공유자원을 사용할 수 있음점유대기 - 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림 비선점 - 프로세스가.. [자료구조] Tree 트리 트리(Tree)의 개념트리는 노드(node)들과 노드들을 연결하는 간선(edge)들로 구성되어있다. 1. 트리는 하나의 루트노드를 갖는다2. 루트 노드는 0개 이상의 자식 노드를 갖고잇다. 3. 그 자식 노드 또한 0개 이상의 자식 노드를 갖고있고, 이는 반복적으로 정의된다. 트리와 관련된 용어 트리의 특징 그래프의 한 종류최소 연결 트리계층모델DAG(directed acyclic graphs, 방향성이 있는 비순환 그래프)의 한 종류트리에는 사이클이 존재할 수 없다.(loop, circuit, self-loop 전부 없음)노드들은 특정 순서로 나열될 수도 있고 그럴 수 없을 수도 있다각 노드는 부모 노드로의 연결이 있을 수도 있고 없을 수도 있다각 노드는 어떤 자료형으로도 표현이 가능비선형 자료.. [C/C++] overloading & overriding C++을 배우면서 이 단어들을 들어 보지 못한 사람은 아마 없을 것입니다.단어가 비슷하기 때문에 처음 배우면 개념이 상당히 헷갈리기도 합니다.간단하게 오버로딩과 오버라이딩을 정의해보면 다음과 같습니다.오버로딩은 함수의 중복 정의, 오버라이딩은 함수의 재정의1. 오버로딩(Overloading)오버로딩은 다음과 같습니다.#include using namespace std;void func(int i){ cout 오버로딩을 자세히 정의해 보면 다음과 같습니다.오버로딩은 함수명이 같고 매개 변수의 타입이나 개수가 다른 함수를 허용하는 것이다.즉, 함수명이 같이도 전달받는 인자의 개수나 타입이 다르면 서로 다른 함수로 인식합니다.위의 결과를 보면 분명히 그렇게 출력되고 있음을 알 수 있습니다.만약 저 소스에서 주.. [Java] Overriding & Overloading overloading method의 이름은 같고, 매개변수의 갯수/타입이 다른 함수를 정의하는 것 리턴값만 다른 오버로딩은 불가능 overriding 상위 클래스의 method를 하위 클래스에서 재정의하는것 method의 이름, parameter의 갯수, 타입 동일. 주로 상위클래스의 상속받은 동작을 하위클래스에서 변경하기위해 사용 이전 1 2 3 4 다음