WEEK 04 알고리즘 TIL(4월7일 월요일)

Devkty·2025년 4월 8일

9:30 ~
컴퓨터 시스템 3.4부터 공부를 하기 시작했다.
오늘 팀 코어타임에 컴퓨터 시스템 3.8부분을 발표하기로 했기 때문에 3.4 완료 후 3.8부분을 먼저 공부했습니다. 관련 내용은 따로 포스팅 하겠습니다.

내일 퀴즈 내용으로 플로이드 관련된 내용이 나온다고 하여 파이썬 코드를 짜보았습니다.
해당 내용관련 개념도 다음 페이지에 포스팅하도록 하겠습니다.

퀴즈대비 11404 플로이드

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로 만듦

목적코드 파일을 역어셈블함

오늘도 늦게자면 너무 졸릴것 같아서 일찍 가봐야겠다. (그렇게 일찍도 아님)

profile
모든걸 기록하며 성장하고 싶은 개발자입니다. 현재 크래프톤 정글 8기를 수료하고 게임회사에서 일을 하고 있습니다.

0개의 댓글