컴퓨터 (300) 썸네일형 리스트형 컴퓨터의 기본 구조 프로그램 실행(execute) = 데이터 읽기(read) + 데이터 처리(processing) + 데이터 저장(store) CPU(Central Processing Unit) 프로그램 실행과 데이터 처리 담당 한번에 처리하는 데이터의 길이에 따라 8비트, 32비트, 64비트 컴퓨터로 구분 주기억장치(Main Memory) 반도체 기억 장치 칩(semiconductor memory chip)으로 구성 읽기와 쓰기 속도가 매우 빠름 가격↑, 면적↑, 저장 용량↓, 영구저장 불가 보조기억장치(Auxiliary Storage Device or Secondary Memory) 기계적 장치나 복잡한 반도체 칩으로 구성 읽기와 쓰기 속도가 느림 CPU 직접 엑세스 불가(별도의 제어기를 통해 가능) 가격↑, 저장 용량.. 자연수에 대한 공리 자연수 a에 대해, a = a이다. 자연수 a와 b에 대해, a = b이면 b = a이다. 자연수 a, b, c에 대해, a = b이고 b = c이면 a = b이다. a와 b에 대해, a가 자연수이고 a = b이면 b도 자연수이다. 1은 자연수이다. 모든 자연수는 오직 하나의 successor(계승자)만 갖는다. 1은 어떠한 자연수의 successor(계승자)가 아니다. 자연수 a와 b에 대해 S(a) = S(b)이면 a = b이다. 집합 X에 대해 1 ∈ X이면 a ∈ X → S(a) ∈ X 합병 정렬(merge sort) C언어 1. 합병 정렬이란? 합병 정렬은 폰 노이만이 제안한 비교기반의 분할 정복 정렬 알고리즘이다. 또한 안정 정렬 중 하나로 속한다. 그리고 최악의 시간 복잡도와 최고의 시간 복잡도는 O(n log n)이다. 2. 실행 순서(오름 차순일때) 1. 배열의 길이가 1이 될 때까지 반으로 나눈다. 2. 그리고 분리된 배열의 좌우를 기준으로 각각의 값을 비교한다. ex) 3과 4의 크기 비교를 한다. 결과 3 < 4 3. 오름 차순에 맞게 비교한 값을 작은 값부터 왼쪽으로 임시 배열에 저장한다. 4. 임시 배열에 저장한 값을 원래 배열에 저장한다. 이 4가지가 정렬이 다 될 때까지 실행이 되면 이렇게 된다. 3. 코드 #include void merge(int a[], int low, int mid, int hig.. 백준 알고리즘 2751번: 수 정렬하기 2 C언어 합병 정렬(merge sort) 문제 출처: https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 1. 코드 #include void merge(int a[], int low, int mid, int hight) //분리된 배열 정렬 및 병합 함수 { int b[1000000]; int i = low; //왼쪽 시작 int j = mid + 1; //오른쪽 시작 int k = 0; //배열 b의 인덱스 값 while(i 백준 알고리즘 2750번: 수 정렬하기 C언어(버블 정렬) 문제 출처: www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 1. 코드 #include #include int main(void) { int * arr; int len, temp, i, j; scanf("%d", &len); arr = (int*) calloc(len, sizeof(int)); for(i = 0; i 0; i--) { for (j = 0; j arr[j + 1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = .. 백준 알고리즘 2750번: 수 정렬하기 C언어 문제 출처: www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 1. 코드 #include #include int main(void) { int * arr; int len, temp, i, j; scanf("%d", &len); arr = (int*) calloc(len, sizeof(int)); for(i = 0; i < len; i++) scanf("%d", &arr[i]); for(i = 0; i < len; i++) for(j = i + 1; j arr[j]).. 백준 알고리즘 1001번 : A-B Java[자바] 문제 출처: https://www.acmicpc.net/problem/1001 1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 1. 코드 import java.util.Scanner; class Main { public static void main(String [] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); System.out.println(A - B); } } (실행) Ideone.com Ideone is something more than a pastebin; it's an online compiler and.. 백준 알고리즘 7568번: 덩치 C언어 문제 출처: https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x,y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x,y), (p,q)라고 할 때 x>p 그리고 y>q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56,177), (45,165) 라고 한다면 A의 덩치가 B보다 큰 www.acmicpc.net 1. 코드 #include int main(void) { int N, i, j, cnt; int arr[50][2]; scanf(.. 이전 1 ··· 29 30 31 32 33 34 35 ··· 38 다음 목록 더보기