컴퓨터 공학 기초
-
N개의 수에 대한 최대공약수 구하기컴퓨터 공학 기초/알고리즘 ( algorithm ) 2020. 4. 22. 20:19
유클리드호제법을 이용하여 먼저 0번째와 1번째의 최대공약수를 구한뒤 구한 공약수와 다음 번째 수의 최대공약수를 구하는 방식으로 요소의 마지막 즉 N번째 까지 연산을 수행하게 되면 N개의 숫자의 공통 된 최대공약수를 구할 수 있다. 풀이 // HelloNew_C+.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include #include #include #include #include int gcd(int a, int b){ int tmp; while (b > 0){ tmp = a; a = b; b = (tmp % a); } return a; } using namespace std; int main(){ int n, s, nData; int res ..
-
팩토리얼 0의 개수 구하기컴퓨터 공학 기초/알고리즘 ( algorithm ) 2020. 4. 22. 13:08
팩토리얼이란 계승을 의미한다 예를들어 10의 팩토리얼은 1 * 2 * 3 * 4 * 5* 6 * 7 * 8 * 9 * 10 을 의미한다. 현재 구하고 싶은 값은 10 팩토리얼에서 나오는 연속된 0의 갯수이다. 예를들어 10팩토리얼의 값 3628800 이있다면 여기서 가장 뒤의 연속된 0 의 개수를 구하는 것이다. 뒤 자리가 0이 나오기 위해서는 값에 10이 더해지는 수 밖에 없다. 따라서 2 * 5 가 몇번나왔는지만 확인하면 된다. 해결을 하기 위해서는 2가지 방법이 있다. 1. 3628800 을 소인수 분해 하여 총 5가 몇개나오는지 확인하는 방법이 있다. 2. 10의 값을 5로 나누고 몫의 값을 파악하는 방법 + 25 * 1, 25 * 2 와 같이 5 * 5 가 두번 나올 경우를 파악 // Hello..
-
최대공약수 (유클리드호제법) 최소공배수컴퓨터 공학 기초/알고리즘 ( algorithm ) 2020. 4. 21. 12:42
최대공약수란 ? 어떤 수 A 와 B가 있을 때 A 와 B 서로의 약수에서 공통된 수들 중 가장 큰 수를 의미한다. 가장 간단하게 구할 수 있는 방법은 A와 B중 작은 값을 구하여 2부터 작은 값 까지 순회하면서 A와 B의 나머지 연산을 통해 구하는 방법이 있다. 해당 방법은 시간복잡도 o(N) 이라는 시간복잡도를 가지고 있으며 해당 방법보다 빠른 유클리드 호제법이라는 알고리즘이 존재한다. 유클리드호제법의 로직은 다음과 같다. int gcd(int a, int b){ if (b == 0){ return a; } else { return gcd(b, (a%b)); } } int main(){ int aNum, bNum; cin >> aNum; cin >> bNum; cout (16, (24 % 16)) ->..
-
Stack 을 이용한 알고리즘컴퓨터 공학 기초/알고리즘 ( algorithm ) 2020. 4. 13. 13:20
이번 포스트에서는 스텍 자료구조를 활용하여 문제를 해결한다. 스텍의 특성은 선입후출의 특성을 가지고 있다. 문제 1. 스텍 구현 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 해결 // Data_struct_c+.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include #include #include using namespace std; class STACK{ // ..
-
ARM 용어 정리컴퓨터 공학 기초/용어 2020. 3. 12. 03:43
해당 포스트의 모든 내용 해당 페이지에서 퍼온 내용임 https://cafe.naver.com/embeddedcrazyboys/1346 ARM ... 대한민국 모임의 시작, 네이버 카페 cafe.naver.com 2009년 새로운 다짐으로 시작하는 첫해인데요. 노트북도 사고 여러가지로 환경은 좋아졌습니다. 이제 열공하는 일만 남은듯 합니다. 요즘 제가 Arm System Developer's Guide (2004)를 읽고 있습니다. 바이블이라고 많은 사람들이 읽으라고 했었던 것인데 늘 미루다가 이제서야 읽게 되었네요. 시작이 반 아니겠습니까 ㅎㅎ ^^;; 아래 내용은 원래 제 팀원이 정리했던 자료인데 나름 ARM에 대해 정리하는 의미는 될듯 해서 올려봅니다. -------------------------..
-
CPU 용어컴퓨터 공학 기초/용어 2020. 3. 12. 02:37
프로세서란 ? 프로세서란 어떤 것을 처리하는 기능을 가진 하드웨어 또는 소프트웨어를 뜻한다. 하드웨어의 프로세서는 기억, 연산, 제어의 3대 기능을 처리하는 장치 (칩)을 나타낸다. 따라서 CPU, MPU, MCU는 모두 프로세서의 일부이다. CPU : 연산 기억, 제어등의 역할에 추가적으로 주변 하드웨어를 제어하는 역할을 한다. 범용적이고 큰 일을 처리하며 고속프로세서이다. 클럭 속도가 가장 높다. MPU : 초소형 연산처리 장치이다. 주변 장치가 필요하며 가벼운 운영체제를 설치할 수 도있고 네트워크 통신 등을 할 수 있는 모델이 많이 출시 됨 ex 라즈베리파이 MCU : 집적 회로 ( 하나의 반도체 기판에 다수의 능동소자와 수동수자를 초소형으로 집적 시킨 구조, 즉 서로 분리 될 수 없는 구조로 만든..