차곡차곡 성 쌓기
article thumbnail
[백준] 특정 거리의 도시 찾기 - Java : 그래프
알고리즘/백준 2024. 1. 29. 17:43

✓ 문제 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 그래프들의 단방향 정보가 주어지고 출발 도시로부터 최단 거리가 X인 다른 정점들을 찾는 문제이다. 단순히 거리가 X인 것이 아니라 최단거리여야 한다. ✓ 풀이 처음에는 DFS탐색을 이용하여 dpeth가 X일 때를 찾았다. 하지만 문제는 최단거리를 구해야 된다는 점이었다. 최단거리를 갱신해주기 위해서는 결국 모든 탐색을 다 해줬어야 했다. 비효율적인 것 같아서 더 효율적인 방법을 찾았..

article thumbnail
컴퓨터 구조 #9 - 빠른 CPU를 위한 설계 기법
CS/컴퓨터 구조 2024. 1. 29. 16:10

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다. 🐳 CPU를 어떻게 빠르게 만들까? 방법 1. 클럭 신호를 더 빠르게 먼저 클럭을 더 빠르게 조정하는 방법이 있다. 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직이다. 일반적으로 클럭 속도를 높일 수록 CPU도 빠르게 동작 한다. 하지만 클럭 수를 높이면 그 만큼 발열이 심해지는 문제가 있다. 참고로 요즘 i7 CPU의 클럭수는 평균 2.5GHz, 최고 4GHz이다. 약 1초에 2.5억번의 명령어 사이클을 실행한다는 것이다. Hz는 초당 실행하는 명령어 사이클의 수이다. 방법 2. 멀티 코어, 멀티 스레드 다른 방법으로는 코어의 수와, 스레드의 수를 늘리는 것이다. 코어와 스레드에 대해 알..

article thumbnail
컴퓨터 구조 #8 - 명령어 사이클과 인터럽트
CS/컴퓨터 구조 2024. 1. 28. 21:49

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다. 🐳 명령어 사이클 CPU는 정해진 흐름대로 명령어를 처리한다. 이러한 흐름을 명령어 사이클이라고 한다. 명령어 사이클은 2가지 동작으로 이루어진다. 인출 사이클과 실행 사이클이다. ▶︎ 인출 사이클 인출 사이클은 메모리로부터 CPU로 명령어를 가져오는 과정이다. 인출 사이클의 자세한 과정은 다음과 같다. PC안에 있는 주소를 MAR(Memory Ardderss Resister)로 보낸다. CPU는 MAR가 가리키는 주소의 메모리에 접근하여 명령어를 가져온다. 가져온 명령어는 MBR(Memory Buffer Resister)을 경유해서 IR에 저장된다. 다음 명령어를 실행하기 위해 PC의 값을 1 증..

article thumbnail
컴퓨터 구조 #7 - CPU 내부 구성 (레지스터)
CS/컴퓨터 구조 2024. 1. 27. 16:14

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다. 레지스터의 역할 레지스터는 CPU 내부에 있는 작은 임시저장 장치로 컴퓨터가 실행하는 프로그램 속 명령어와 데이터를 일시적으로 저장하고 전달한다. 레지스터는 컴퓨터 프로세서 내에서 자료를 보관하는 아주 빠른 기억장소이며, 메모리 계층의 최상위에 위차한다. 속도가 가장 빠른 만큼 비싸기 때문에 속도 측면에서 중요할 때와 꼭 사용해야되는 값들이 저장된다. 이렇게 빠르고 비싼 레지스터는 다양한 종류가 있고 각기 다른 역할을 가진다. CPU마다 사용하는 레지스터의 개수나 종류들은 다르지만, 공통적으로 사용하는 레지스터들이 있다. 이번 포스팅에서 공통적으로 사용하는 주요 레지스터의 종류와 역할에 대해 알아..

article thumbnail
컴퓨터 구조 #6 - CPU 내부 구성(ALU, 제어 장치)
CS/컴퓨터 구조 2024. 1. 27. 02:02

본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다. ALU CPU의 핵심 부품 중 하나로 연산을 담당하는 부품이다. ALU에서 연산을 하기 위해서는 피연산자와 수행할 연산이 필요하다. ▶︎ 받아들이는 정보 제어 장치, 레지스터 ➞ ALU 제어 장치 : 제어 신호 보냄 레지스터 : 피연산자 보냄 ▶︎ 내보내는 정보 ALU ➞ 레지스터, 플래그 레지스터 빠르기 때문에 메모리가 아닌 레지스터에게 보낸다. 레지스터 :결과 값 플래그 레지스터 : 연산 결과에 대한 부가 정보 (ex: 양수, 음수 플래그, 범위 오버) 플래그 레지스터 : 플래그의 종류 부호 플래그 : 연산한 결과의 부호를 나타낸다. 제로 플래그 : 연산 결과가 0인지 나타낸다. 캐리 플래그 :..