본문 바로가기

전체 글95

[python 구름] 구름 스퀘어 📜 접근 방법 회의실 배정과 같은 문제는 그리디 알고리즘으로 푼다 종료시간이 빠른 기준으로 우선순위를 잡는다. 시작 시간과 종료 시간을 받아 리스트에 넣는다. 우선순위는 첫번째로 종료시간이 빠르고, 두번째론 시작시간이 빠른 순으로 정렬한다. events를 돌면서 시작 시간 보다 종료 시간이 적을 경우 cnt + 1 해주고 종료 시간을 변경해준다. ❌ 실패 코드 ✅ 정답 코드 import sys input = sys.stdin.readline n = int(input()) events = [] for _ in range(n): s, e = map(int, input().split()) events.append([s, e]) events.sort(key = lambda x : (x[1], x[0])) cnt.. 2023. 5. 20.
[C] 컴파일 과정 전처리 - 컴파일 - 어셈블 - 링크 전처리 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환 include파일과 매크로는 어디서 실행되는가? 전처리기 preprocessor에서 처리한다 include 파일 매크로(macro) 컴파일러 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환 어셈블러 목적 코드(Object code) 로 변환 리눅스의 경우 .o 파일 ex) test.c -> test.o 링커 프로그램 내에 있는 라이브러리 함수 또는 다른 파일들과 목적 코드를 결합하여 실행 파일을 만듬 실행 파일 확장자 : .exe, .out .exe 파일은 윈도우에서 만들어지고 .out 파일은 맥에서 만들어짐 정적 라이브러리와 동적 라이브러리 라이브러리 정적 라이브러리 .. 2023. 5. 20.
[python 구름] 직사각형 만들기 📜 접근 방법 딕셔너리와 우선순위 큐를 사용 딕셔너리로 입력 받은 갯수를 저장하면서 힙에도 저장한다. pop하여 그 값의 갯수가 2개 이상인지 확인 후 pair에 저장한다. (우선순위 큐를 이용하여 제일 큰 수를 pop하기 때문에 정렬이 필요 없다.) pair에 순서대로 2개의 값을 곱해서 넓이를 만들고 res에 더한다. ❌ 실패 코드 만들수 있는 모든 직사각형의 최대 수를 구해야하는데 제일 큰 하나의 직사각형만 구함 from heapq import heappop, heappush import sys n = int(input()) nums = list(map(int, input().split())) dict_ = {} nums_dict = {} heap = [] res = 1 cnt = 0 for num.. 2023. 5. 19.
프로세스 구조 프로세스란? 컴퓨터에서 실행되고 있는 프로그램 = CPU 스케줄링의 대상이 되는 작업(Task) 프로그램이 메모리에 올라가면 인스턴스화가 일어나 프로세스가 되고, CPU 스케줄러에 따라 CPU가 프로세스를 실행함 프로세스 구성 요소 Stack Heap Data (BSS segment, Data segment) Code 힙과 스택 사이의 공간을 비워놓는 이유 스택과 힙의 메모리 영역이 겹치면 안되기 때문에 ex) 만약 함수가 함수를 재귀적으로 호출할 경우 동적으로 크기가 늘어날 수 있어 스택과 힙의 사이 공간을 비워놓는다 Stack : 지역변수, 매개변수, 함수가 저장 동적인 특징을 갖음 Heap : 코드에서 동적으로 만들어지는 데이터 저장 Data : 전역 변수, 정적 변수가 저장되고 프로그램이 종료되면.. 2023. 5. 19.