[자료구조] - 큐(Queue)
·
💻 Computer Science/자료구조-알고리즘
큐의 정의 스택과 함께 큐도 프로그래밍에서 굉장히 자주 사용되는 자료구조입니다. 스택이 후입선출(LIFO) 형태를 따르는 자료구조라면, 큐는 반대로 선입선출(FIFO, First In First Out) 형태를 따르는 자료구조입니다. 선입선출의 예시로는 은행 업무를 보기 위해 기다리는 사람들의 대기열을 예시로 들 수 있습니다. 가장 먼저 대기표를 뽑은 사람이 가장 먼저 은행 업무를 보게 될 것입니다. 이처럼 큐는 "뒤에서 새로운 데이터가 추가되고 앞에서 데이터가 하나씩 삭제되는 구조"를 가지고 있습니다. 즉, 삽입과 삭제가 서로 다른 곳에서 일어납니다. 큐에서 삽입이 일어나는 곳(가장 뒤 부분)을 후단(Rear)이라고 하고, 큐에서 삭제가 일어나는 곳(가장 앞 부분)을 전단(Front)이라고 합니다. E..
[컴퓨터 구조] - 순서 논리 회로의 특성(Sequential Logic Circuit)
·
💻 Computer Science/컴퓨터 구조
지금까지는 우리가 조합 논리 회로에 대해서 알아보았습니다. 논리식을 간소화하고, 카르노맵을 사용하며, 이진 디코더, 멀티플렉서 등 조합 논리회로의 부품을 살펴보았습니다. 조합 논리 회로는 모든 출력값이 "입력값"에만 의해서 결정되기에, 입력값이 같다면 항상 동일한 출력값이 나오게 됩니다. 그러나 순서 논리 회로는 "입력값"과 "회로의 상태", 이 2가지에 의해서 출력값이 결정이 되는 회로입니다. 즉, 출력값이 입력값에만 의존하지 않는다는 것입니다. 이제부터는 순서 논리 회로에 대해서 알아보고자 합니다. 플립플랍(Flip-Flop) 순서 논리 회로에서는 "회로의 상태"가 출력값에 영향을 끼치게 되는데, 회로의 상태를 저장하기 위해서 사용하는 회로가 바로 "플립플랍"입니다. 플립플랍은 1비트의 정보를 저장하..
[백준] 1008번: A/B [C/C++]
·
📑 Coding Test/백준 알고리즘
https://www.acmicpc.net/problem/1008 1008번: A/B 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제: 1008번 A/B 문제 풀이(Problem Solve) // A / B #include using namespace std; int main() { double A, B; cin >> A >> B; cout.precision(9); cout
[C언어] - 메모리 할당
·
🖥 Language/C , C++
C언어에서는 "가비지 컬렉터"가 없기에 프로그래머가 직접 메모리 관리를 해주어야 합니다. 즉, 프로그래머가 데이터를 저장할 메모리 공간을 적절히 나누는 "메모리 할당" 작업을 진행해야 하는 것입니다. C언어에서의 메모리 할당 방법은 "정적 메모리 할당"과 "동적 메모리 할당" 이렇게 두 가지가 있습니다. 지금부터 C언어에서의 메모리 할당 방법에 대해서 알아보도록 하겠습니다. 메모리 구조 컴퓨터 운영체제는 여러 가지 정보나 사용자가 입력한 데이터를 기억하기 위한 메모리 공간을 제공하는데, 대표적인 메모리 공간으로는 "코드 영역(Code Segment)", "데이터 영역(Data Segment)", "스택 영역(Stack Segment)", "힙 영역(Heap Segment)"가 있습니다. 코드 영역 (Co..
[컴퓨터 구조] - 이진 디코더, 이진 인코더(Binary Decoder and Binary Encoder)
·
💻 Computer Science/컴퓨터 구조
우리가 지금껏 조합 논리회로의 논리식을 다루는 방법과 카르노맵을 알아보았습니다. 지금부터는 자주 사용되는 조합 논리 회로의 부품들에 대해서 알아보겠습니다. 이번 시간에 다룰 것은 "이진 디코더"와 "이진 인코더"입니다. 이진 디코더 (Binary Decoder) 이진 디코더는 2진수를 입력 받고, 출력 신호 중 하나만 1로 설정하고 나머지를 모두 0으로 만드는 회로를 말합니다. 이진 디코더의 예시로는 2진수로 0이 입력된다면, 0번째 신호가 1로 켜지고, 1이 입력되면 1번째 신호가 1로 켜지는 방식 등이 있습니다. 위의 사진은 "1-to-2 이진 디코더"입니다. 하나의 비트를 입력받은 후, 비트의 값에 따라 해당 출력 포트에서 불빛을 켜는 것입니다. 이진 인코더 (Birnary Encoder) 이진 인..
[컴퓨터 구조] - 멀티플렉서, 디멀티플렉서(Multiplexer and De-multiplexer)
·
💻 Computer Science/컴퓨터 구조
우리가 지금껏 조합 논리회로의 논리식을 다루는 방법과 카르노맵을 알아보았습니다. 지금부터는 자주 사용되는 조합 논리 회로의 부품들에 대해서 알아보겠습니다. 이번 시간에 다룰 것은 "멀티플렉서"와 "디멀티플렉서"입니다. 멀티플렉서(Multiplexer, MUX) 멀티플렉서(Multiflexer)란 "여러 개의 입력 신호로부터 원하는 하나의 신호를 선택하여, 선택된 입력을 출력하는 회로"를 말합니다. 우리가 예상할 수 있듯이 가장 간단한 멀티플렉서는 "2개의 입력 중 하나를 선택하여 출력하는 것"일 겁니다. 바로 이 그림이 위에서 말한 2개의 입력 중 하나를 골라 출력하는 멀티플렉서이며, 이를 "2-to-1 멀티플렉서"라고 합니다 이를 진리표로 나타낸다면 간단하게 이런 식으로 나타낼 수 있을 것입니다. 컨트..
[C언어] - 구조체
·
🖥 Language/C , C++
C언어에는 다양한 자료 타입들이 있습니다. 정수형(int), 실수형(float, double), 문자형(char), 그리고 short, long 등등 여기에 부호를 결정하는 자료 타입(unsigned)까지 C언어는 생각보다 많은 자료 타입을 가지고 있습니다. 그런데 여러 자료들을 한 번에 저장하고 싶으면 어떻게 해야할까요? 이때 "구조체"라는 것이 사용됩니다. 지금부터 구조체에 대해서 알아보도록 하겠습니다. typedef 키워드 typedef 키워드는 Type Define의 줄임말로, "타입을 정의하겠다"는 뜻입니다. 이러한 문법이 필요한 이유는 기존의 자료형 중 길이가 긴 표현들을 짧게 표현할 수 있기 때문입니다. 예를 들어 unsigned long long int 같은 자료형을 typedef 문법을 ..
loading