본문 바로가기

분류 전체보기12

인터럽트(Interrupt) 운영체제는 컴퓨터 하드웨어를 관리하고 프로그램의 수행을 제어하는 역할을 수행한다. 운영체제의 첫 부분을 보면 인터럽트라는 개념이 나온다. Interrupt의 뜻은 방해하다, 중단시키다 등의 의미가 있는데 해당 단어의 의미와 OS에서의 의미가 같다. 인터럽트란, 하드웨어 및 소프트웨어가 특정 업무를 수행하기 위하여 CPU에게 보내는 신호이다. (※ 여기서 특정 업무란, 반드시 OS의 처리가 필요한 경우를 말한다.) 인터럽트를 받은 CPU는 현재까지 수행하던 프로그램의 상태를 저장하고 Program Counter가 Interrupt Vector를 가리키게 한다. 그 다음 Interrupt Vector에서 ISR(Interrupt Service Routine)의 주소 값을 읽어 ISR로 점프한 후 해당 루틴을.. 2020. 4. 14.
스킬트리(프로그래머스) 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 비교 문제이다. skill 이라는 문자열과 skill_trees 라는 배열이 입력으로 주어질 때 ( ※ skill_trees는 문자열이 담긴 배열이다.) skill_trees에 담긴 각 문자열들 중에서, skill의 순서를 따르는 문자열을 골라 그 개수를 출력하는 문제이다. 문제에 적힌 예시를 적어보면, skill = "CBD" 이고 skill_trees = ["BACDE", "CBADF.. 2020. 4. 14.
탐욕 알고리즘(Greedy algorithm) 매 순간마다 최적의 해를 찾는 문제해결 패러다임 이다. 알고리즘의 작동 방식이 이름과 매우 흡사하다. 간단하게 예를 하나 들어보자. 탐욕 알고리즘을 이용하는 대표적인 문제는 동전 거스름돈 문제이다. 이 문제는 거슬러 받는 동전의 개수를 가장 적게 받아야 하는 문제이다. 동전의 종류는 현실과 마찬가지로 1원, 10원, 50원, 100원, 500원이 있다고 하고 거슬러 받아야 할 돈은 총 1761원이라고 하자. 생각하기 가장 쉬운 방법은, 액수가 가장 큰 동전부터 채워서 주는 것이다. 이렇게 줄 경우 500원 3개 + 100원 2개 + 50원 1개 + 10원 1개 + 1원 1개 ==>> 총 8개의 동전을 주게 된다. 과연 최소한의 개수로 동전을 준 것이 맞을까? 질문의 답은 '예' 다. 다만, 동전 거스름돈.. 2020. 4. 11.
동적 계획법(Dynamic Programming) 문제를 여러개의 작은 문제로 나누고, 작은 문제의 해를 이용하여 더 큰 문제의 해를 찾는 문제해결 패러다임 이다. 설명을 쉽게 하기 위하여 간단하게 예를 들어보자. 동적 계획법을 이용하는 대표적인 문제는 동전 거스름돈 문제이다. 이 문제는 거슬러 받는 동전의 개수를 가장 적게 받아야 하는 문제이다. 동전의 종류는 1원, 3원, 7원, 10원이 있고 거슬러 받는 돈이 총 14원이라고 하자. 생각하기 가장 쉬운 방법은, 액수가 가장 큰 동전부터 채워서 주는 것이다. 이렇게 줄 경우 10원 1개 + 3원 1개 + 1원 1개 ==>> 총 3개의 동전을 주게 된다. 과연 최소한의 개수로 동전을 준 것이 맞을까? 질문의 답은 '아니오' 다. 7원짜리 2개를 주는 방법이 동전을 더 적게 줄 수 있다. 만약, 동전의 .. 2020. 4. 11.