반응형

CS 69

[책] 컴퓨터 아키텍처 - 01. 컴퓨터와 시스템

컴퓨터와 시스템컴퓨터 시스템의 개념적 구성컴퓨터는 일반적으로 하드웨어(hardware), 소프트웨어(software) 로 구성됨.하드웨어 : 시스템을 구성하는 물리적 부붐으로 이루어진 전자적, 기계적 장치 소프트웨어 : 하드웨어에 작업을 수행할 순서와 방법을 지시하는 명령어로 구성된 프로그램 및 프로그램 수행에 필요한 절차, 규칙, 관련 문서 등을 총칭쉽게 말해서 하드웨어는 컴퓨터 부품을 생각하면 되고, 소프트웨어는 어떠한 명령어를 통해 하드웨어를 사용할 수 있게 만들 수 있게 하는 것이라고 생각하면 될 것 같다.컴퓨터 시스템의 4대 기능컴퓨터 시스템은 입력, 처리, 저장, 출력을 수행한다.입력 : 입력장치를 통해 외부 세계에서 내부 세계로 정보를 받아들이는 기능. (ex. 키보드) 처리 : 입력된 정보..

CS/컴퓨터 구조 2019.02.06

[Algorithm] BFS 와 예시 문제

BFSBFS 의 목적은 임의의 정점에서 시작해서, 모든 정점을 한 번씩 방문하는 것이다. 그렇지만 BFS 는 최단거리를 구하는 알고리즘으로 사용된다.BFS 로 최단거리를 구하려면 우선 모든 가중치가 1일 때라는 전제조건이 있어야 한다.왜냐하면 BFS 는 모든 간선을 큐에 넣고 그 연결된 모든 간선을 탐색하기 때문이다.그렇기 때문에 우리는 BFS 를 이용해서 최단거리를 구할 수가 있다.BFS 를 이용해 해결할 수 있는 문제BFS 를 이용해 해결할 수 있는 문제는 다음과 같은 조건을 만족해야 한다.최소 비용 문제간선의 가중치가 1정점과 간선의 개수가 적어야 함. (시간 제한, 메모리 제한)최소 비용 = 최단 거리의 거리 는 같아야 한다.예제백준 2178 문제를 살펴보자. 미로찾기 문제다.#include #i..

CS/알고리즘 2018.11.20

백준 10971 문제. (TSP문제를 수열을 이용해 해결)

백준 문제 10971백준 문제 10971 문제는 외판원 순회 문제로, TSP(Traveling Salesman Problem) 문제이다.위와 같은 문제는 순열을 이용해 문제를 해결 할 수 있는데, 그 이유는 (2 w[i][q]; } } std::vector a(n); for (int i = 0; i < n; ++i) { a[i] = i; } int result = 999999999; do { int sum = 0; bool isOk = true; for (int i = 0; i < n - 1; ++i) { // 여기서 vector a 는 수열이라서 n+1 로 해도 모두 돈다. if (w[a[i]][a[i + 1]] == 0) { // [i][j] 가 0일 때 못 가기 때문 isOk = false; } e..

CS/알고리즘 2018.10.29

백준 2609 문제 - 유클리드 호제법을 이용

백준 2609 문제이다 최소 공배수와 최대 공약수를 구하는 문제이다. 우리는 여기서 유클리드 호제법을 사용할 수 있다. 얼마 전 내가 유클리드 호제법 증명하는 것을올렸으니 한 번 찾아보자. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); int g = gcb(a, b); System.out.println(g); System.out.println((a*b) / g); } public static int gcb(int a, int b..

CS/알고리즘 2018.10.24

백준 2309 : 일곱 난쟁이

일곱 난쟁이 문제다. [https://www.acmicpc.net/problem/2309] 문제를 읽고 나면 알 수 있듯이, 아홉 명의 난쟁이 중에 일곱 난쟁이를 찾으면 된다. 이 말인 즉슨, 2명을 찾아서 제외를 하면 되는 것이다. 그러면 2명이면 n제곱으로 찾을 것이다. 3명이면 n 세제곱 , ...... 한 번에 모든 난쟁이 키를 더한 뒤에 한 명, 한 명 빼주면 언젠간 100 이 딱 떨어지면 그 수를 제외하고 출력을 하면 된다. for ( int i = 0; i < 9; ++i ) { for ( int q = i + 1; q < n; ++q ) { if (sum - arr[i] - [arr- q] == 100 ) { // arr[i], arr[q] 를 제외하고 출력 } } }

CS/알고리즘 2018.10.23

[자료구조] 그래프

Graph이번엔 그래프에 대해서 알아보도록 하겠다. Introduction일련의 정점(node, vertex, 꼭짓점) 집합 V와 간선(edge, 변) 집합 E로 구성된 자료구조의 일종이다. 일반적으로 정점엔 데이터, 간선엔 정점과 정잠 사이의 관계 정보가 포함되어 있다.여기서 []는 정점이다([V1]). 정점 사이에는 간선이다(e1). [V1] ------ e1 ------- [V2]------e3------[V4] | [V3] ---- e2---- | | e4 | [V5] G = (V, E) V = {V1, V2, V3, V4, V5} E = {E1, E2, E3, E4} e1 = (V1, V2) e2 = (V2, V3) e3 = (V2, V4) e4 = (V3, V5) 쉽게 한 마디로 말하면 사물들..

CS/알고리즘 2018.04.25
반응형