728x90
반응형

전체 글 264

[Baekjoon 15650 / Python / 실버3] N과 M (2)

# 우선 모든 경우의 수 수열을 만드는 코드를 짠다# depth가 0일 땐 바로 재귀 돌린다# depth가 0이 아니라면 "이전 숫자와 비교해 더 클 경우" 재귀 돌린다# num은 str 형태로 전달되며, 비교할 때만 int로 변환해 비교한다# 수열이 완성되면 str형태의 num을 중간에 공백을 추가해서 result 리스트에 담는다# result 리스트의 완성된 수열들을 차례로 출력한다import sysinput = sys.stdin.readline# 1 ~ N 까지의 수 / M개를 고른다N, M = map(int, input().split())visited = [False] * (N + 1) # 수와 인덱스를 맞추기 위해 + 1 한다result = []# 조건 검사 함수def compare(a, b):..

[Baekjoon 2529 / Python / 실버1] 부등호

import sysinput = sys.stdin.readlineN = int(input()) # 부등호 개수boo = list(input().split()) # 부등호 리스트result = []visited = [False] * 10 # depth는 숫자 개수만큼def compare(a, b, op):    if op == '>':        if a b: return False    elif op == ':        if a > b: return False    return True# 깊이, 현재숫자(문자열)def backTracking(depth, num):    # 숫자가 완성되었다면 결과 리스트에 추가    if depth == N + 1:        result.append(num) ..

[크래프톤 정글 5기] 팀장으로서 나만무 프로젝트, 그리고 정글을 마무리하며..

https://poke-code.com 드디어 나만무 프로젝트가 끝이 났다. 나만무 기간 하루하루가 정말 너무나도 힘들었기에 도중에는 시간이 너무 느리게 가는 느낌이었지만, 막상 발표를 마치고 나니 이게 끝난 것인지, 아직 하고 있는 건지도 모를 정도로 실감이 나지 않았고 벌써 발표 후 이틀이 지나버렸다. 어떤 일이든 겪을 때는 힘들고 고난스럽지만, 끝이 나면 언제 그랬냐는 듯 편해지고 내가 겪은 일들과 얻어낸 성과가 당연한 것이 되어버리는 것 같다. 시간은 항상 매정하게 흐르고, 흘러가는 시간에 내가 무엇을 채워 넣었느냐에 따라서 미래가 결정된다. 하루하루 열심히 채워 넣으면 나도 모르게 높은 곳에 올라있을 것이고 그것이 당연하게 느껴질 것이며, 하루하루 무의미하게 보낸다면 나도 모르게 뒤쳐져 있을 것..

[Baekjoon 2503 / Python / 실버3] 숫자 야구

import sysimport itertoolsinput = sys.stdin.readline# 질문 횟수N = int(input())# 숫자, 스트라이크, 볼q = []for i in range(N):    q.append(list(map(int, input().split())))num = [i for i in range(1, 10)]numbers = list(itertools.permutations(num, 3))# 결과 저장할 변수result = 0# 생성된 모든 숫자에 대해서 반복for i in numbers:        # 숫자 하나하나에 대해, 모든 질문에 대한 조건 검사    for j in range(len(q)):        strike = 0        ball = 0       ..

[Baekjoon 5427 / Java / 골드4] 불

BFS 문제이다. 불이 1초마다 상하좌우로 1칸씩 퍼지고, 상근이는 1초마다 상하좌우로 1칸씩 이동할 수 있다.건물 끝 4방향의 '.' 빈 공간에 다다르면 탈출에 성공하게 된다. 상근이의 빌딩 탈출에 걸리는 시간을 출력하고, 탈출할 수 없다면 IMPOSSIBLE을 출력하면 된다. import java.io.*;import java.util.*;public class 불_5427 {    static int N; // 테스트 케이스 개수    static int[] dx = {-1, 1, 0, 0};    static int[] dy = {0, 0, -1, 1};    static char[][] tower;    static int[][] visited;    static int w, h;    publ..

Algorithm/BFS 2024.06.08

PintOS 프로젝트 3주차 중간 정리와 의문점들 ( TLB, Belady's Anomaly, Thrashing, Dirty Page, Supplemental Page Table )

페이지 테이블 접근 시 TLB가 어떻게 페이지 테이블의 성능을 향상시키는가?- TLB는 자주 사용되는 주소 변환 정보를 빠르게 참조할 수 있도록 하는 "캐시 메모리" 이다.- TLB에 원하는 주소 변환 정보가 있으면, 페이지 테이블을 참조하지 않고 바로 물리적 주소를 얻을 수 있어 성능이 향상된다. TLB Miss일 때 시스템은 어떤 과정을 거쳐 메모리에 접근하는가?- TML Miss일 때 시스템은 페이지 테이블을 조회하여 물리적 주소를 찾은 후, 추후 빠르게 접근할 수 있도록 정보를 TLB에 업데이트한다.   Belady의 역설(Belady's Anomaly)- 페이징 기법을 사용하는 메모리 관리 시스템에서, 프레임 수를 늘리는데도 page fault가 발생하는 빈도가 늘어나는 현상 Belady의 역설..

PintOS 프로젝트 3주차 키워드 정리 ( Virtual Memory, Page Table, TLB, Page Fault, Lazy Loading, PRP, DMA )

Virtual Memory물리적 메모리(RAM)의 제한을 극복하고 효율적인 메모리 관리 및 프로세스 격리를 위해 사용되는 중요한 개념 Virtual Memory 개념- 각 프로세스는 독립적인 가상 주소 공간을 갖는다. 이는 프로세스가 자신의 메모리 공간을 다른 프로세스와 공유하지 않고, 독립적으로 사용할 수 있도록 한다.- 가상 메모리와 물리 메모리는 모두 고정된 크기의 블록으로 나뉜다. 가상 메모리 블록을 "페이지" 라고 하고, 물리 메모리 블록을 "페이지 프레임" 이라고 한다.   Page Table가상 메모리를 물리 메모리로 매핑하는 데 사용되는 데이터 구조. 각 프로세스는 독립적인 가상 주소 공간을 가지며, 페이지 테이블은 이 가상 주소를 물리 주소로 변환(매핑)하는 역할을 한다. Page Tab..

PintOS 프로젝트 2주차 키워드 정리 ( User mode, Kernel mode, Register, Memory, System Call, File Descriptor, Cache, Atomic Operation, %rax, 32bit OS, 64bit OS, interrupt, Segmentation Fault )

User mode vs Kernel mode리눅스 운영체제는 User mode와 Kernel mode라는 두 가지 주요 실행 모드를 가지고 있다. 커널 모드(Kernel mode)- 운영체제의 핵심 부분인, "커널"이 실행되는 모드- 하드웨어에 대한 완전한 접근 권한을 가진다. -> 메모리, 프로세스 스케줄링, 파일 시스템 관리, 네트워킹 같은 low level 작업을 수행할 수 있다.- 시스템의 모든 자원을 제어할 수 있기 때문에, 커널 모드에서의 오류는 시스템에 심각한 영향을 미칠 수 있다.- 커널 모드에서는 시스템 모든 자원에 접근할 수 있는 광범위한 권한을 가지며, 따라서 커널 모드의 프로세스들은 메모리 공간을 공유한다. 사용자 모드(User mode)- 일반 응용 프로그램이 실행되는 모드- 커널..

PintOS 프로젝트 2주차 [User Programs / System Call] (2)

95개의 테스트 케이스 중 15개를 실패한 코드입니다. 주의해서 참고하세요.pass tests/userprog/args-nonepass tests/userprog/args-singlepass tests/userprog/args-multiplepass tests/userprog/args-manypass tests/userprog/args-dbl-spacepass tests/userprog/haltpass tests/userprog/exitpass tests/userprog/create-normalpass tests/userprog/create-emptypass tests/userprog/create-nullpass tests/userprog/create-bad-ptrpass tests/userprog/cr..

PintOS 프로젝트 2주차 [User Programs / System Call] (1)

95개의 테스트 케이스 중 15개를 실패한 코드입니다. 주의해서 참고하세요.pass tests/userprog/args-nonepass tests/userprog/args-singlepass tests/userprog/args-multiplepass tests/userprog/args-manypass tests/userprog/args-dbl-spacepass tests/userprog/haltpass tests/userprog/exitpass tests/userprog/create-normalpass tests/userprog/create-emptypass tests/userprog/create-nullpass tests/userprog/create-bad-ptrpass tests/userprog/cr..

728x90
반응형