문제 https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 코드 arr = [False for i in range(0,10001)] for i in range(1, 10001): sum = 0 n = i while (1): if n == 0: break; a = n % 10 sum = sum + a n = int(n/10) result = sum + i if(i == result): break eli..
분류 전체보기
목차 더보기 스케줄링의 목적 스케줄링 기준 및 단계 스케줄링 정책 기본 스케줄링 알고리즘들 Case study Basic Scheduling algorithms 공평성을 고려한 방식 FCFS (First Come First Service) RR (Round Robin) 효율성을 고려한 방식 SPN (Shortest Process Next) SRTN (Shortest Remaining Time Next) HRRN (High Response Ratio Next) BT예측문제를 개선한 방식 MLQ (Multi level Queue) MFQ (Multi level Feedback Queue) FCFS (First-Come-First-Service) (프로세스 하나가 코어를 할당 받으면 계속 쓰겠다는 스케줄링) ..
목차 더보기 스케줄링의 목적 스케줄링 기준 및 단계 스케줄링 정책 기본 스케줄링 알고리즘들 Case study 다중 프로그래밍 여러개의 프로세스가 시스템 내 존재 자원을 할당 할 프로세스를 선택 해야 함 --> 스케줄링 자원 관리 시간 분할 (time sharing) 관리 하나의 자원을 여러 스레드들이 번갈아 가며 사용 예 ) 프로세서 프로세스 스케줄링 (Process scheduling) : 프로세서 사용시간을 프로세스들에게 분배 공간 분할 (space sharing) 관리 하나의 자원을 분할하여 동시에 사용 예 ) 메모리 (memory) 스케줄링(Scheduling) 의 목적 시스템의 성능(perfornamce) 향상 대표적 시스템 성능 지표 (index) 응답시간 (response) : 작업 요청(..
문제 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 문제에서 A배열과 B배열의 값들을 곱해서 최솟값을 구하고자 한다. 가장 작은 수를 뽑아내려면? 최대값 X 최솟값 + 최대값 X 최솟값 + .... + 최대값 X 최솟값 이렇게 반복하면 된다. 즉 배열 하나는 오름차순 나머지 배열 하나는 내림차순하여 같은 인덱스마다 값들을 곱하면 구하고자 하는 가장작은S값을 얻을 수 있다. 문제를 살펴보면 "단, B에 있는 수는 재배열하면 안 된다." ..
2020 1회 실기 ~ 2021 2회 실기에 출제된 문제들은 글자에 회색 배경을 칠하였습니다 시나공 교재로 공부하였으며 수기로 작성하여 오타가 있을 수 있습니다. 제목 옆 [A] 는 출제 빈도가 높다고 생각하는 용어들 [B]는 A보다 출제빈도가 낮다고 생각하는 용어들로 정리하였습니다. 약술형 대비치고는 많아서.. 이중에서 A 몇개 뽑아서 외우는것을 권장드립니다. Chapter 8, 10 은 언어, SQL쿼리문 관련 단원이고, 약술형으로 다루기에 방대하여 본 포스팅에서 제외하였습니다 Chapter1. 요구사항 확인 소프트웨어 생명주기 [A] 소프트웨어 생명주기(Software Life Cycle): 소프트웨어를 개발하기 위한 과정을 각 단계별로 나눈 것 폭포수 모형(Waterfall Model): 각 단계..
프로세스와 스레드 프로세서가 하는일 자원을 할당받아서 원하는 목적을 달성함 프로세서는 자원과 제어라는 두가지 요소로 나누어 생각해 볼 수 있는데 제어 부분만 분리해 놓는것을 이를 스레드 라고 한다. 하나의 프로세스안에 스레드는 여러개 있을 수 있다 = 하나의 프로세스 안에 제어는 여러개 있을 수 있다. 지역데이터: 그 안에서만 사용할 수 있는 데이터이다. 지역 데이터는 제어를 하기위해 사용 지역 데이터는 스택에 저장됨 프로세스는 할당 받은 자원을 공유한다. 한 프로세스 안에 여러개의 스레드가 존재 할 수 있다. 어떤 프로세스에게 메모리가 할당된 공간에 프로세스들은 스레드들은 동일한 주소 공간을 공유한다. 각 스레드마다 자신에게 할당된 스택 영역(작업 영역)을 가지게 되고 지역데이터를 만들고 그 안에서 작..
문제 https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 한 3~4시간 고민하고도 도저히 답이 안나와서 힌트를 얻었다. https://www.youtube.com/watch?v=7noZLdfHIMQ&t=918s&ab_channel=Chan-SuShin 다음과 같이 알고리즘을 작성하였다. 각 강의의 시작시간, 끝나는 시간을 배열에 입력한다. 강의의 시간이 입력되어 있는 배열을 시작시간 순으로 오름차순 정렬한다. 가장 빠르게 시작하는 강의 끝나는 시간을 힙에 넣는다. (힙=강의실) 배열의 두번째 강..
문제 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 문제 접근 및 테스트 케이스 더보기 로프를 병렬로 연결하면 각 로프에 w/k의 중량이 동일하게 지탱함 최대로 지탱할 수 있는 중량 = 가장 작은 로프가 지탱하는 무게 X 병렬로 연결된 로프의 수 각 로프마다 지탱할 수 있는 무게를 리스트로 입력받아 정렬함 ex) [3, 10, 10, 6] =>[10, 10, 6, 3] 로프가 한개씩 추가되어 지탱한다고 생각하자 [10X1, 10X2,..
인터럽트 예상치 못한, 외부에서 발생한 이벤트 인터럽트의 종류 I/O interrupt Clock interrupt Console interrupt Program check interrupt Machine check interrupt Inter-process interrupt System call interrupt 인터럽트 처리 과정 인터럽트 처리 과정을 시간의 흐름에 따라 설명하자면.. Pi프로세서가 실행중일 때 인터럽트가 발생한다. 그러면 Pi프로세서를 중단시킨다. 이때 Context saving이 발생한다. (Context saving: 책깔피 같은 개념, 흐름을 저장한다) 그 후 커널 개입, 인터럽트가 어디서, 왜 발생했는지 파악한다. 원인파악후 처리하기 위해 어떤 서비스 루틴을 호출해야하는지 결..
문제 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 내가 푼 코드 a = list(input()) a.sort(reverse=True) sum = 0 for i in a: sum+=int(i) if sum % 3 !=0 or "0" not in a: print(-1) else: print("".join(a))