TIL 1/14

김주민·2024년 1월 14일

csapp

목록 보기
3/8

저녁에 공부 시작해서 내용이 많이 없음

정렬은 힙정렬 다시 보고 정렬 파트 수정함

정렬 다시 리마인드

이후 브루트포스 하고 kmp는 이해가 안돼서 내일 다시 볼 예정

컴퓨터 시스템은 1.4 마무리


컴퓨터 시스템

  • hello program 실행
  1. :\hello 를 쉘에 적성 -> 각 문자를 읽어들인 후 메모리 저장.
  2. Enter -> 파일 내의 코드와 데이터를 복사하는 인스트럭션 실행, 실행파일 hello를 디스크 -> 메인 메모리로 로딩
  3. hello 목적 파일의 코드와 데이터가 메모리에 적재된 후 프로세서가 hello의 main 루틴의 기계어 인스트럭션 실행

    (3번은 이 후 Graphic adapter를 통해 Display됨)

(직접 메모리 접근 DRAM : 디스크에서 프로세서를 거치지 않고 메인 메모리로 직접 이동)


완전탐색 - 브루트 포스( Brute force )

문자열을 한글자씩 비교하며 원하는 문자열이 포함되어 있는 지 탐색

비효율적

# 검색된 문자열의 첫 인덱스+1 을 찾아준다.
# t : 주어진 문자열
# p : 찾는 문자열
def brute_force(t, p):
  i = 0 # t의 검색 인덱스
  j = 0 # p의 검색 인덱스
  while i < len(t) and j < len(p):
    if t[i] == p[j]:
      i += 1
      j += 1
    
    else: 
      i = i - j + 1
      j = 0
    
    return i - j if j == len(p) else -1

0개의 댓글