분류 전체보기502 25. 입출력 구조 - 시스템 BUS 0. 시작하기 전에 - BUS에 대해서 배우기 전에, CPU에 어떤 레지스터와 처리장치들이 있는지 다시한번 복습하길 바란다. - BUS는 기억장치와 CPU간의 소통을 위한 것이기 때문이다. - CPU에 대해 알고 싶다면, 아래의 링크를 참고하자. https://devraphy.tistory.com/298 14. CPU 내부구조 - 레지스터 0. 시작하면서 - 이전 포스팅까지 논리회로에 대해서 배웠다. - 그리고 플립플롭이 여러개 모이면 레지스터라는 것을 알게 되었다. - 이번 포스팅에서는 레지스터간의 연결 방식과 동작방식에 대 devraphy.tistory.com 1. 시스템 BUS란 무엇인가? - BUS란 컴퓨터 내부의 기억장치와 중앙처리장치(CPU) 간의 소통을 위해 연결된 회로를 말한다. - 시스템.. 2021. 8. 26. 24. 컴퓨터 구조 - 캐시메모리의 동작원리 1. 캐시메모리가 사용되는 방식 - 일반적으로 캐시 메모리(L2)는 CPU와 주기억장치 사이에 위치한다. - 캐시 메모리는 CPU와 주기억장치 간의 속도차이를 극복하기 위해 사용되는 장치로 - CPU의 처리속도 만큼 빠른 속도를 보장한다. - 그러나 주기억장치 만큼 큰 용량을 갖지 못한다. 비싸기 때문이다. - 이와 같은 이유로, 캐시 메모리는 CPU가 사용할 데이터 또는 명령어의 일부분만 저장하게 된다. 2. CPU, 캐시메모리, 주기억장치의 상호작용 a) Word와 Block ▶ Word - 그림에서 캐시메모리와 주기억장치를 구성하는 한칸을 의미한다. - 한번에 레지스터에 옮길 수 있는 데이터 또는 명령어의 크기를 표현하는 단위다. - 주기억장치에서 레지스터로 한번에 옮길 수 있는 데이터의 단위 - .. 2021. 8. 25. 23. 컴퓨터 구조 - 메모리 시스템의 이해 1. 메모리란 무엇인가? - 메모리 또는 기억장치라 불리는 하드웨어는 CPU가 실행할 프로그램을 저장하는 곳이다. - 메모리는 다음과 같이 분류된다. ▶ 주기억장치 (Main Memory Unit) - RAM(휘발성)과 ROM(비휘발성)으로 구성된다. - 일반적으로 '메모리' 라고 말하면 RAM을 지칭하는 것이다. ▶ 보조기억장치 (Auxiliary Memory Unit) - 하드디스크, USB, CD-ROM 등을 지칭한다. - ROM과 함께 전원이 차단되어도 데이터를 저장하는 기억장치 ▶ 캐시 메모리 (Cache Memory) - 전원이 차단되면 데이터가 사라진다. (= 휘발성) - 주 기억장치와 CPU의 사이에 위치한 메모리 - 주 기억장치에서 실행할 프로그램의 일부분을 꺼내와서 CPU의 사용 직전에.. 2021. 8. 25. 백준 2750 파이썬 - 수 정렬하기(선택정렬) 1. 문제 링크 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2. 나는 어떻게 생각했는가? # 백준 단계별 풀이 12단계 - 수 정렬하기 # https://www.acmicpc.net/problem/2750 # 선택정렬을 사용해서 풀어보자. from typing import List from sys import stdin input = stdin.readline def selection_sort(case: List[int]) -> List[int]:.. 2021. 8. 24. 4. Array(배열) - Selection Sort(선택정렬) 1. Selection Sort란? - 가장 왼쪽의 수(index 0)을 기준으로 최소값을 찾아 swap하여 정렬하는 알고리즘 - 한번 탐색을 할 때마다, 기준 index값이 1씩 증가한다. a) 예제를 통한 선택정렬의 이해 2. 선택정렬의 시간복잡도 - 선택정렬은 버블정렬과 삽입정렬과 동일한 O(n^2)의 시간복잡도를 갖는다. 3. Selection Sort의 안정성 - 선택정렬은 불안정(unstable)한 알고리즘이다. 4. Selection Sort 직접 구현해보기 - 선택정렬의 개념을 배웠으니, 직접 코드로 구현해보자. from typing import List def selection_sort(case: List[int]) -> List[int]: for idx in range(1, len(ca.. 2021. 8. 24. 백준 2750 파이썬 - 수 정렬하기(삽입정렬) 1. 문제 링크 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2. 나는 어떻게 생각했는가? # 삽입정렬을 사용해서 풀어보자. from typing import List from sys import setprofile, stdin input = stdin.readline def insertion_sort(case: List[int]) -> List[int]: for idx in range(1, len(case)): current = case[idx] .. 2021. 8. 24. 3. Array(배열) - Insertion Sort(삽입정렬) 1. Insertion Sort란? - 삽입 정렬은 버블정렬과 동일하게 O(n^2)의 시간복잡도를 갖는 정렬 알고리즘이다. - 조건에 맞는 적절한 곳에 배열의 요소를 삽입하여 정렬하는 방법이다. a) 예제를 통한 삽입정렬의 이해 b) 삽입정렬의 시간복잡도 → O(n^2) c) 삽입정렬의 안정성(Stability) - 삽입 정렬은 안정적인 알고리즘이다. - 아래의 코드구현 예시를 통해 살펴보자. d) 삽입정렬 구현하기 from typing import List def insertion_sort(case: List[int]) -> List[int]: for idx in range(1, len(case)): current = case[idx] # 기준 값과 비교될 요소 flag = idx - 1 # 기준 값의.. 2021. 8. 24. 파이썬 - 알고리즘 Tips(8/23 업데이트) - 본 포스팅은 알고리즘 문제를 풀면서 배우게 된 Tip을 정리한 포스팅입니다. - 일종의 오답노트이며, 최근순으로 정리됩니다. 9. 함수의 매개변수 타입을 지정하는 방법 - 만약 어떤 함수를 작성할 때, 매개변수를 지정하고 싶다면 어떻게 할까? - 아래의 예시 코드를 우선 살펴보자. from typing import List def bubble_sort(List[int]) -> List[int]: #함수내용작성 - 위의 코드는 다음과 같은 방식으로 구조를 갖는다. def 함수명(매개변수명: 자료형) -> 반환자료형: #함수내용작성부 - 매개변수 다음 콜론을 적는다. - 콜론 다음에 매개변수의 자료형을 적는다. - 화살표 기호 다음에 작성되는 자료형은 해당 매개변수를 return 할 때 적용할 자료형을 .. 2021. 8. 23. 백준 2750 파이썬 - 수 정렬하기(버블정렬) 1. 문제 링크 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2. 나는 어떻게 생각했는가? - 이번 문제는 사실 간단한 풀이가 존재한다. - 하지만 풀기 간단한 만큼 버블정렬을 연습하기 좋은 문제다. - 버블정렬을 사용한다면, 다음과 같이 풀 수 있다. from typing import List from sys import stdin input = stdin.readline def bubble_sort (case: List[int]) -> List[.. 2021. 8. 23. 이전 1 ··· 23 24 25 26 27 28 29 ··· 56 다음