분류 전체보기

1. 운영체제란? 운영체제는 컴퓨터 시스템의 핵심 소프트웨어로, 하드웨어 자원을 관리하고 프로그램을 실행시키는 역할을 합니다. 또한 사용자와 하드웨어 간의 인터페이스를 제공하며, 시스템의 안정성과 보안을 유지하기 위한 다양한 기능을 수행합니다. 2. 운영체제의 역할과 구조 2-1. 운영체제의 역할 2-1-1. CPU 스케줄링과 프로세스 관리 CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리합니다. 2-1-2. 메모리 관리 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리합니다. 2-1-3. 디스크 파일 관리 디스크 파일을 어떠한 방법으로 보관할지 관리합니다. 2-1-4. I/O 디바이스 관리 I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를..
문제 링크 https://www.acmicpc.net/problem/16120 16120번: PPAP 첫 번째 줄에 문자열이 주어진다. 문자열은 대문자 알파벳 P와 A로만 이루어져 있으며, 문자열의 길이는 1 이상 1,000,000 이하이다. www.acmicpc.net 문제 풀이 def check(input_str): stack = [] flag = False for str in input_str: # if str == 'A' and (len(stack) = 4 and stack[-4:] == ['P', 'P', 'A', 'P']: for _ in range(..
문제 링크 https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 문제 풀이 import heapq n = int(input()) times = [] for _ in range(n): times.append(list(map(int, input().split()))) times.sort() room = [] heapq.heappush(room, times[0][1]) for i in range(1, n): if times[i][0] < room[0]: heapq.heappush(room, times[..
문제 링크 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 풀이 n = int(input()) result = 0 while n % 5 != 0 and n >= 3: n -= 3 result += 1 if n % 5 == 0: result += n // 5 else: result = -1 print(result) 5kg 봉지를 최대한 많이 사용하는 것이 핵심인 문제였습니다. 처음부터 5kg을 먼저 빼낼 경우 최대 봉투수를 보장하기 위해 고려할 것들이..
문제 링크 https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 문제 풀이 이중 for문으로 하나하나 일치 여부를 확인하기에는 전화번호 개수 범위가 최대 10000개까지로 시간 초과 가능성이 높았습니다. 그래서 비교 횟수를 최소화하는 방법을 고민하던 중, 문자열의 정렬 원리를 통해 해결했습니다. 문자열은 대소비교를 통해 정렬되는 숫자와 달리 앞에서부터 비교되어 정렬됩니다. 예를 들어 아래 숫자를 311 27625999 3112..
문제 링크 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 풀이 입력이 [1, 2, 3]의 형태로 들어오기 때문에, 이를 파싱해서 deque에 넣어 사용했습니다. nums = deque(input().rstrip()[1:-1].split(',')) 단순한 구현으로 풀면 풀리는 문제이지만, 정답률이 낮은 이유는 시간 초과에 있었습니다. 본 문제는 시간제한이 1초입니다. 파이썬에서는 1초에 약 2000만번의 연산이 가능합니다. pop 연산은 O(1)의 시간복잡도이므로 큰 문제가 없지만, revers..
문제 링크 https://www.acmicpc.net/problem/1766 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net 문제 풀이 import heapq n, m = map(int, input().split()) indegree = [0] * (n + 1) graph = [[] for _ in range(n + 1)] for _ in range(m): a, b = map(int, input().split()) graph[a].append(b) indegree[b] += 1 ..
문제 링크 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 문제 풀이 import heapq nums = [] result = 0 n = int(input()) for _ in range(n): heapq.heappush(nums, int(input())) while len(nums) > 1: n1 = heapq.heappop(nums) n2 = heapq.heappop(nums) heapq.heappush(nums, n1 + n..
YOONJELLY
'분류 전체보기' 카테고리의 글 목록 (4 Page)