9:30 ~
컴퓨터 시스템 3.4부터 공부를 하기 시작했다.
오늘 팀 코어타임에 컴퓨터 시스템 3.8부분을 발표하기로 했기 때문에 3.4 완료 후 3.8부분을 먼저 공부했습니다. 관련 내용은 따로 포스팅 하겠습니다.
내일 퀴즈 내용으로 플로이드 관련된 내용이 나온다고 하여 파이썬 코드를 짜보았습니다.
해당 내용관련 개념도 다음 페이지에 포스팅하도록 하겠습니다.
https://www.acmicpc.net/problem/11404
import sys
input = sys.stdin.readline # 입력을 빠르게 처리
n = int(input()) # 도시(노드) 개수
m = int(input()) # 버스(간선) 개수
INF = int(1e9) # 무한대로 초기화 (10억 이상이면 충분)
# 2차원 거리 배열 초기화
# graph[i][j]는 i에서 j로 가는 최소 비용
graph = [[INF] * (n + 1) for _ in range(n + 1)]
# 자기 자신으로 가는 비용은 0
for i in range(1, n + 1):
graph[i][i] = 0
# 간선 정보 입력
for _ in range(m):
a, b, c = map(int, input().split())
# 여러 간선 중 더 짧은 값만 저장
graph[a][b] = min(graph[a][b], c)
# 플로이드 워셜 알고리즘 수행(3중 for문)
for k in range(1, n + 1): # 경유지
for i in range(1, n + 1): # 출발지
for j in range(1, n + 1): # 도착지
graph[i][j] = min(graph[i][j], graph[i][k] + graph[k][j])
# 결과 출력
for i in range(1, n + 1):
for j in range(1, n + 1):
# 도달할 수 없으면 0 출력
if graph[i][j] == INF:
print(0, end=' ')
else:
print(graph[i][j], end=' ')
print()
00:00 ~ 02:30
팀원분들과 컴퓨터 시스템 3.4, 3.7, 3.8 관련된 내용에 대해 공부를 했다.(코어타임)
나는 시간이 없어서 포인터의 기본적인 개념과 플로이드 와샬에 대해 설명했다. 내일 재공부하여 발표할 예정이다.
~ 4:00
원래 M1이 리눅스를 x86-64로 못돌리는데 가상화로 돌려보았다. 실제로 어셈블리어가 나오는 걸 보니 신기하다. 더 크게 와닿는다. 예시코드 3.2.2를 따라했다.

mstore.c 를 mstore.s로 어셈블리 파일로 만듦

어셈블리 파일을 목적코드 파일 mstore.o로 만듦

목적코드 파일을 역어셈블함
오늘도 늦게자면 너무 졸릴것 같아서 일찍 가봐야겠다. (그렇게 일찍도 아님)