Krafton_Jungle/Study

CSAPP 데이터의 형식 C declaration Intel data type Assembly-code suffix Size char Byte b 1 short Word w 2 int Double word l 4 long Quad word q 8 char * Quad word q 8 float Single precision s 4 double Double precision l 8 이 내용은 인텔 레지스터에 자주 사용되는 단위임으로 Assembly-code suffix는 모두 외우고 있는게 좋다. 정보 접근하기 정수 레지스터 중첩된 상자들이 보여주듯이 인스트럭션들은 16개의 레지스터 하위 바이트들에 저장된 다양한 크기의 데이터에 대해 연산할 수 있다. 역할 스택을 관리하고, 함수의 인자를 넘겨주고, 함수에..
백준 문제풀이 1. 1388 바닥장식 import sys input = sys.stdin.readline n, m = map(int, input().split()) plate = [] for i in range(n): row = input().rstrip() plate.append(row) count = 0 # 가로 타일 탐색 for i in range(n): flag = False for j in range(m): if plate[i][j] == "-" and flag == False: flag = True count += 1 elif flag == True and plate[i][j] == "|": flag = False for i in range(m): flag = False for j in ran..
1. 2637 장난감 조립 import sys from collections import deque input = sys.stdin.readline # 위상정렬 후 정렬된 결과값 반환 def topological_sort(): result = [] queue = deque() for i in range(1, n+1): if in_degree[i] == 0: queue.append(i) while queue: current = queue.popleft() result.append(current) for index, value in graph[current]: in_degree[index] -= 1 if in_degree[index] == 0: queue.append(index) return result d..
1. 1916 최소비용 구하기 import math import sys import heapq input = sys.stdin.readline def make_graph(vertices, edges): # 빈 그래프 생성 graph = [[] for _ in range(vertices+1)] for i in range(edges): # 그래프에 값 추가 start_vertex, arrival_vertex, cost = map(int, input().split()) graph[start_vertex].append((cost, arrival_vertex)) return graph def dijkstra(graph, start_vertex): queue = [] # 거리를 저장할 리스트 선언 distances..
1. 11725 트리의 부모찾기 import sys from collections import deque input = sys.stdin.readline result = [] def bfs(visited, result): queue = deque([1]) visited.add(1) while queue: vertex = queue.popleft() for neighbor in graph[vertex]: if neighbor not in visited: queue.append(neighbor) result[neighbor] = vertex visited.add(neighbor) return result n = int(input()) graph = [[] for _ in range(n + 1)] for i ..
1. 1197 최소 스패닝 트리 import sys input = sys.stdin.readline # 크루스칼 알고리즘을 이용한 풀이 v, e = map(int, input().split()) edges = [[int(x) for x in input().split()] for _ in range(e)] edges.sort(key=lambda x: x[2]) # weight 기준으로 정렬 # 부모를 저장할 테이블 parent = [0] * (v + 1) for i in range(1, v+1): parent[i] = i result = 0 # 재귀적으로 탐색하며 부모를 return def find_parent(parent, n): if n != parent[n]: parent[n] = find_paren..
자료구조 B-Tree B트리란? B트리는 디스크나 다른 직접 접근 보조 기억장치에서 잘 동작하도록 설계된 균형잡힌 트리이다. B트리의 특징 이진트리와 다르게 하나의 노드에 여러개의 값을 가질 수 있다. 최대 M(B트리의 차수)개의 자식노드를 가질 수 있다. 3차 B트리라면 3개의 자식을 가질 수 있다.(leaf 노드 제외) 각 노드는 ⌈M/2⌉개의 key를 저장한다. 데이터 삽입 추가는 항상 leaf에 삽입한다. 노드가 넘치면 가운데 key를 기준으로 좌우 key들을 분리하고 다운데 key는 승진한다. 노드가 넘친다? 각 노드가 가질 수 있는 최대 M-1개의key를 초과한 경우를 뜻함 데이터 삭제 데이터의 삭제는 리프 노드에서만 이루어진다. 여기서 리프 노드가 아닌 노드에서 삭제를 시도할 경우, 가장 좌..
CS:APP 1.7.3 쓰레드 쓰레드란? 프로세스는 여러개로 나뉘어서 작동하는데, 여기서 나뉜 프로세스들은 쓰레드라고 한다. 단일코어 환경 단일 코어 환경에서 쓰레드들을 병렬적으로 처리하는 방법은 시분할 방식으로 실행되는데, 이는 사실 완전히 병렬적으로 데이터를 처리하는 것이 아닌, CPU가 매우 빠르게 각 쓰레드를 번갈아가며 작업한다. 다중코어 환경 다중코어 환경에서는 병렬적으로 작업이 가능하며, 각 코어가 독립적으로 쓰레드를 실행할 수 있다. 1.7.3 가상 메모리 가상 메모리란? 하나의 프로세서가 전체 메모리만큼, 혹은 그 이상의 주소까지 접근할 수 있게 가상의 메모리 주소를 제공하는 기술. 여기서 가상의 메모리 주소는 MMU에 의해 물리적 주소로 변환된다. 가상 메모리는 프로그램이 필요로 하는 메..
알고리즘 시험 1. 1110 더하기 사이클 저번에 풀이한 방법은 while문을 사용해서 풀었길레 이번엔 재귀를 사용해서 풀이했음. 2. 1182 부분수열의 합 파이썬 내장 모듈 사용 안하고 풀려다가 시간 엄청 까먹었다... 그냥 모듈 사용하고 3번으로 갈걸 3. 1992 쿼드트리 import sys input = sys.stdin.readline def solve(x, y, total_length): global res if total_length
백준 문제풀이 1. 2740 행렬곱샙 혼자 2중for문으로 풀려다가 시간 다날리고 결국 풀이를 확인했다. 좀만 더 생각해보면 간단히 해결할 수 있는데 너무나도 아쉬운 문제. 2. 2468 안전 영역 import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline # 1 = 강수량 1 ~ n+1 # 전체 탐색 시작 result = 0 def search_safe(result, max_value): for i in range(0, max_value + 1): visited = set() safe = 0 for y in range(n): for x in range(n): safe += dfs(i, x, y, visited) result = max(resu..
전낙타
'Krafton_Jungle/Study' 카테고리의 글 목록 (3 Page)