[ 운영체제 ] Context Switching 과정에 대해서 설명해 보세요.
·
공부 정리/면접 준비
Context Switch 문맥전환 > CPU가 다른 프로세스로 전환되는 경우, - 시스템은 전환되기 이전의 프로세스 관련 정보를 저장해야합니다. - 컨텍스트 스위치를 통해 새 프로세스에 대해 저장된 상태를 로드합니다 > PCB에 표시된 프로세스의 컨텍스트 > 컨텍스트 스위치는 오버헤드입니다. = 전환 중에 시스템이 유용하게 작동하지 않습니다. OS와 PCB가 복잡해질수록, 컨텍스트 스위치가 길어집니다. > 하드웨어에따라 컨텍스트 스위칭 시간이 변화되기도 합니다. 일부 하드웨어는 CPU당 여러 개의 레지스터 세트를 제공합니다. -> 여러 컨텍스트를 동시에 로드할 수 있습니다. Process control block PCB는 일종의 운영체제에서 프로세스를 관리하는 자료구조로, 구조체 입니다. 레지스터에 있..
Ch8.다이나믹 프로그래밍 - 개미 전사
·
코딩 테스트/이취코테
[ 접근 방법 ] 리스트를 통해 인자값을 받은 후 bottom up 방식으로 최대로 강탈하는 식량을 찾아내가면 될 것 같다. 강탈하는 방법은 n 번째 식량 창고의 경우 식량(n-1)이 더 큰지, 아니면 식량(n-2 + n) 이 더큰지 확인하여 갱신해 나가면 될것으로 보인다. [ 작성 코드 ] # 3
Ch8.다이나믹 프로그래밍 - 1로 만들기
·
코딩 테스트/이취코테
[ 접근 방법 ] 입력값을 받은 후, 그 입력값 만큼 크기를 갖는 리스트를 선언한다. 그리고 "해당 인덱스에 해당하는 수 + 1( 0 일경우 1, 1일경우 2)"에 도달할 수 있는 최소 계산 방법을 리스트에 0부터 하나 하나 채워 나가도록 한다. [ 구현 코드 - FAIL ] x = int(input()) search = [i for i in range(x)] mul = x // 5 for i in range(1,mul+1): search[i*5-1] = search[i*5-1] if search[i*5-1] < i else i mul = x // 3 for i in range(1,mul+1): search[i*3-1] = search[i*3-1] if search[i*3-1] < i else i mul..
Ch7.이진 탐색 - 떡볶이 떡 만들기
·
코딩 테스트/이취코테
[ 접근 방식 ] 대표적인 파라메트릭 서치라고 하는데, 나로썬 다시 풀어보아도 쉽지 않은 문제이다. 구현 자체의 어려움보단, 이진 탐색을 어떤 부분을 어떻게 지정할 것인지 판단하기가 어려웠다. 이진 탐색의 알고리즘을 활용하여 떡 잘린 길이에 따라 길이를 늘리고 줄이는 판단을 하도록 구현한다. [ 작성 코드 ] n , m = map( int, input().split()) data = list(map(int , input().split())) start = 0 end = max(data) while sum != m: sum = 0 mid = (start + end) // 2 for i in data: if i > mid: sum += i - mid if sum > m : start = mid+1 elif ..
Ch7.이진 탐색 - 부품 찾기
·
코딩 테스트/이취코테
[ 접근 방식 ] 이진 탐색의 Chapter이기도 하며, 입력 N의 크기가 1000000이나 되므로 리스트를 정렬하고 이진탐색을 통해 탐색하도록 구현하면 될 것 같고 생각하였다. 근데 한편으로는 이진 탐색이 아니라면 Key-Value( Dict ) 로 찾도록 구현해보는 것도 괜찮을 것 같다는 생각을하여 두 코드유형으로 구현해 보았다. [ 작성 코드 ] def binary_search(array , find , start , end): if start > end: return None mid = ( start + end ) // 2 if array[mid] == find : return mid elif array[mid] > find : return binary_search(array , find , st..
Ch6. 정렬 - 두 배열의 원소 교체
·
코딩 테스트/이취코테
[ 두 배열의 원소 교체 ] [ 접근 방법 ] 두 배열을 정렬하고, A 배열의 가장 낮은 수 k개 와 B 배열의 가장 높은 수 k개를 비교하여 A배열의 원소가 더 낮을경우 교환을 하도록 구현하면 정답이 나올 것 이다. [ 작성 코드 ] n, k = map(int,input().split()) arr1 = list(map(int,input().split())) arr2 = list(map(int,input().split())) arr1.sort() arr2.sort(reverse = True) for i in range(k): for j in range(n): if arr1[i] < arr2[j]: arr1[i], arr2[j] = arr2[j], arr1[i] break print(sum(arr1)) n..
Ch6. 정렬 - 성적이 낮은 순서로 학생 출력하기
·
코딩 테스트/이취코테
[ 성적이 낮은 순서로 학생 출력하기 ] ---------------------- [ 접근 방법 ] 이는 sort 및 sorted 함수의 Key 매개변수를 사용할 수 있는지 물어보는 문제라 생각된다. sort 나 sorted의 key를 통해 정렬하고 이름을 출력하면 쉽게 해결된다. --------------------- [ 작성 코드 ] n = int(input()) data = [] for _ in range(n): data.append(input().split()) # data = sorted(data, key = lambda student : student[1]) data.sort( key= lambda data : int(data[1])) for i in data : print(i[0],end="..
Lv1 . 포켓몬 - Python
·
코딩 테스트/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   처음 답안 :import itertoolsdef solution(nums): pick = len(nums)//2 result = list(itertools.combinations(nums,pick)) print(result) answer = 0 for i in result: i = set(i) if len(i) > answer : ..
포카칩인심
포카의 IT 블로그