aass4856의 등록된 링크

 aass4856로 등록된 네이버 블로그 포스트 수는 29건입니다.

네이버 블로그 [내부링크]

당신의 모든 기록을 담는 공간

네이버 블로그 [내부링크]

당신의 모든 기록을 담는 공간

[논리 회로] Combinational Circuit Design and Simulation Using Gates [내부링크]

이번 글에서 다룰 내용은 Design of Circuits에 관한 내용이다. < Fan-in and Fan-out > Fan- in : Gate가 수용할 수 있는 최대 input의 개수이다. Fan-out : 하나의 논리 게이트의 출력이 얼마나 많은 논리 게이트의 입력으로 사용되었는 지의 개수를 나타낸다. Fan-out은 나중에 Buffer를 공부할 때 꼭 알아야 할 개념이다. 시스템 복잡도를 최적화하기 위해서는 Fan-in을 높이고, Fan-out을 낮추는 것이 복잡도가 최적화 된다. < Gate Delay and Timing Diagrams > 현실적으로 Gate는 input 값이 들어올 때 바로 출력이 되지 않고 약간의 Delay가 존재하게 된다. 위의 과정을 Timing Diagrams으로 그려보자. ( inverter가 2개인 걸로 치고 그려보자.) 위와 같이 정리할 수 있다. 즉, 초기 X가 0이라 할 때 inverter에 들어가면 출력이 1로 바뀌는데 그게 0에서 1로

[논리 회로] MUX, Decoders, and Programmable Logic Devices [내부링크]

이때까지의 내용을 정리하곘습니다. 이때까지는 Combinational Logic에 관한 Design을 배우고 있습니다. C.L.의 Design 방법은 총 3가지입니다. Gate Level MSI level System level 이때까지 배운 것들이 Gate level을 변형하는 법을 배운 것입니다. 이제는 MSI level에 관해 설명하겠습니다. 먼저 말하자면 MUX, Decoder, PLD 등이 있습니다. 가장 먼저 알아야 할 건 Full Adder입니다. <Full Adder > A B C_in C_out S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 이는 덧셈을 의미합니다. A + B이며 C_in은 A + B를 자릿수 덧셈할 때 넘어가는 1을 의미합니다. 보면 1이 1개일 경우 S에 1 1이 2개 일 경우 C_out에 1 1이 3개 일 경우 C_out, S에 1이 됐음을 알 수

[논리 회로] Latches and Flip-Flop [내부링크]

이번 글은 Latch와 Flip-Flop에 관한 내용을 다룹니다. 내용이 많습니다.. 차근차근 이해해보시면 좋을 것 같습니다. Logic은 총 2가지로 나뉩니다. 1. Combinational Logic(C.L. , 조합논리 ) 현재의 출력은 현재의 입력에만 영향을 받는다. 이전까지 배운 모든 내용이 결국 이 C.L.의 내용입니다. 2. Sequential Logic(S.L. , 순서논리 ) 현재의 출력은 현재의 입력 + 과거의 정보에 영향을 받는다. 지금부터 배울 Latch와 Flip-Flop이 바로 이 부분입니다. < S.L. 의 구성 > S.L. = C.L. + Memory 로 구성이 됩니다. 그림으로 보면 아래와 같습니다. X는 입력, Z는 출력이며 Memory를 통해 현재의 상태를 저장하고 다음 출력에 영향을 줍니다. 이것이 S.L.입니다. 그리고 이 Memory 기본소자가 latch와 Flip-Flop입니다. 또한 latch와 Flip-Flop의 종류로는 S-R, D, J

[C언어 자료구조] Search 문제 : 개념 설명 및 코드 구현 [내부링크]

< 문제 > 입력 파일 in.txt의 양식은 다음과 같다. N a1 a2 a3 ... an N : 정수의 개수 a : 오름차순으로 정렬된 서로 다른 양의 정수 위 정수들을 읽어 배열에 저장한다. Scanf로 값을 입력하면 그 값을 array에서 search 한다. search에 성공하면 해당 index 번호를 출력하고 실패하면 -1을 출력한다. Sequential Search로 구현 Iterative binary Search로 구현 Recursive binary Search로 구현 scanf에 음수값을 입력할 경우 프로그램을 종료한다. < 실행 예제 > in.txt 6 10 12 15 18 100 2000 <실행 결과 > Scanf 입력 : 2000 Sequential : 5 Iterative : 5 Recursive : 5 Scanf 입력 : 19 Sequential : -1 Iterative : -1 Recursive : -1 Scanf 입력 : -10 프로그램 종료 < 개념 설

[논리 회로] Boolean Algebra [내부링크]

Boolean Algebra는 논리 회로에 있어서 중요한 체계입니다. 이는 전자, 전기 컴퓨터와 같은 하드웨어 소프트웨어 등 널리 이용되고 있는 체계입니다. 이번 글의 Contents는 다음과 같습니다. < Contents > Basic Operations Basic Theorems SOP and POS Multiplying out and Factoring Secondary Operations < Basic Oprerations > X = 0 --> switch open 상태입니다. 즉 연결이 안되어 있는 상태입니다. X = 1 --> switch closed 상태입니다. 즉, 연결이 되어있는 상태입니다. 1) Inverter Inverter은 0을 1로, 1을 0으로 바꿔주는 역할을 합니다. 2) AND A B C = A * B 0 0 0 0 1 0 1 0 0 1 1 1 AND는 모두 1일 때 1로 작동합니다. 이는 회로에서는 직렬 연결을 뜻합니다.(Serial) 3) OR A B

[논리 회로] Minterm and Maxterm [내부링크]

이번 글은 Minterm, Maxterm에 대한 내용으로 개념은 간단하지만 이전 글인 여러 Basic Theroem들을 익숙하게 사용하려면 여러 문제를 풀어보는 게 중요합니다. 문제를 많이 풀어보시길 바랍니다. Minterm, Maxterm은 중요한 개념이며 Karnaugh Map을 그릴 때 기본적으로 사용됩니다. < Truth Table > A B C Minterms MaxTerms 0 0 0 A'B'C' = m0 A + B + C = M0 0 0 1 A'B'C = m1 A + B + C' = M1 0 1 0 A'BC' = m2 A + B' + C = M2 0 1 1 A'BC = m3 A + B' + C' = M3 1 0 0 AB'C' = m4 A' + B + C = M4 1 0 1 AB'C = m5 A' + B + C' = M5 1 1 0 ABC' = m6 A' + B' + C = M6 1 1 1 ABC = m7 A' + B' + C = M7 < Minterm > m-notati

[논리 회로] Karnaugh Map [내부링크]

이번 글은 Karnaugh Map에 대한 설명입니다. 앞서했던 Minterm, Maxterm이 주어졌을 때 이것을 Basic Theorem을 이용해 식을 간략화하기 매우 힘들고 복잡한 과정입니다. 이에 나온 방법이 Karnaugh Map이며 이 외에도 다른 방법이 있습니다. 일단 이번 글은 Karnaugh Map에 대한 설명입니다. Karnaugh Map은 사실 4개의 변수까지 다룰 수 있습니다. 물론 차원을 늘리면 더 많은 변수까지 가능하지만 사실 변수가 많아질 경우 Karnaugh map은 보통 사용하지 않습니다.. 따라서 변수가 2개일 때, 3개일 때, 4개일 때의 Karnaugh map만 살펴보겠습니다. < 2개의 변수일 때 Karnaugh Map > 변수가 2개이므로 minterm은 총 4개입니다. 이를 Karnaugh Map이라는 시각적 이미지로 위처럼 표현할 수 있습니다. A B F 0 0 1 0 1 1 1 0 0 1 1 0 위와 같은 예시가 있습니다. 이를 Karnau

[논리 회로] Quine-McCluskey Method [내부링크]

이번 글은 Quine-McCluskey Method에 대한 내용입니다. 이것도 KarnaughMap처럼 Minterm, Maxterm expansion이 주어질 때 이의 식을 최소화하게 만들어주는 식입니다. 다만 Quine-McCluskey Method의 경우 변수의 제한이 없습니다. 따라서 Karanugh Map보다 상위호환으로 생각을 해도 됩니다. 예시를 통해 방법을 이해해봅시다. < 3개의 변수일 때 Quine-McCluskey Method > 위와 같은 minterm expansion이 있습니다. 일단 이것을 1이 몇개냐에 따라 나열해줍니다. 위 예시는 1이 0개, 1개, 2개, 3개인 경우가 하나씩 있어서 아래처럼 되는데 좀 더 이해가 가려면 더 밑에 나올 4개의 변수를 이용한 예시를 보면 좋을 것 같습니다. Minterm A B C 0 0 0 0 2 0 1 0 3 0 1 1 7 1 1 1 이제 1의 개수가 1개씩 차이나는 것끼리 비교합니다. 즉 0과 2를 비교하고, 2와

[논리 회로] Multi-Level Gate Circuits [내부링크]

이번 글은 Multi-Level Gate Circuits에 관한 내용이다. 앞서 배운 SOP와 POS는 결국 무엇인가? SOP는 곱셈들을 모아놓고 마지막에 덧셈. 즉 곱셈 후 덧셈 POS는 덧셈들을 모아놓고 마지막에 곱셈. 즉 덧셈 후 곱셈 이는 모두 two level Gate로 구성되어있다는 것이다. 하지만, 앞으로 직면할 문제들은 더 높은 level의 Gate의 구현도 필요하다. 이번 내용이 이에 관련된 내용이다. < Types of Gate > 게이트 종류에 대해 우선 알아보자 AND, OR, Inverter를 제외하고 많이쓰이는 2가지의 Gate가 더 있다. 1. NAND(Not AND) AND의 Not 결과를 출력해주는 Gate이다. 식으로는 (X1X2)' = F 이다. 2. NOR(Not OR) OR의 Not 결과를 출력해주는 Gate이다. 식으로는 (A + B)' = C 이다. NAND만으로 AND를 구성할 수 있고, NOR만으로 AND를 구성할 수 있다. OR도 마찬가

[C언어 자료구조] Insertion Sort 문제 : 개념 설명 및 코드 구현 [내부링크]

< 문제 > 파일 in.txt에 포함된 정수들의 집합에 대해 내림차순으로 정렬하여 화면에 출력하라. in.txt의 첫 숫자는 배열의 크기이다. 그 다음 숫자부터 배열에 들어갈 숫자이다. < 실행 예제 1 > in.txt 3 1 2 3 < 화면 출력 > 3 2 1 < 실행 예제 2 > in.txt 7 7 1 2 3 6 4 5 < 화면 출력 > 7 6 5 4 3 2 1 < 개념 설명 > - Insertion Sort 삽입 정렬이다. 말 그대로 삽입을 하면서 정렬한다는 뜻이다. data를 삽입할 때 key 값을 이용해 올바른 자리를 찾아서 삽입한다. 예시를 이용해 이해해보자. 예제 2번을 예시로 해보자. 7 - 1 - 2 - 3 - 6 - 4 - 5 위 배열을 내림차순으로 정렬하는 문제이다. 1. 처음의 key 값은 두번째 자료부터 시작한다. 즉 1이다. 1과 7을 비교한다. 올바르게 되어있으므로 가만히 놔둔다. 7 - 1 - 2 - 3 - 6 - 4 - 5 ( 원소 2개 배열 완료) 2

[C언어 자료구조] Quick Sort 문제 : 개념 설명 및 코드 구현 [내부링크]

< 문제 > 문제 1 : Quick sort를 이용하여 파일 in1.txt에 포함된 알파벳 소문자들의 집합을 non-decreasing order로 정렬하여 출력하라. 문제 2 : Quick Sort를 이용하여 파일 in2.txt에 포함된 record들의 집합을 주어진 key에 대해 non-decreasing order로 정렬하여 key와 함께 출력하라. Record는 1개의 정수와 1개의 알파벳 소문자로 구성된다. Key가 1일 경우 모든 record는 숫자에 대해 정렬한다. Key가 2일 경우 모든 record는 알파벳 소문자에 대해 정렬한다. < 실행 예제 1 > in1.txt c b c a in2.txt 5 c 2 b 3 c 4 a < 화면 출력 > a b c c Scanf_s로 1 입력 시 2 b 3 c 4 a 5 c Scanf_s로 2 입력 시 4 a 2 b 3 c 5 c < 개념 설명 > 문제가 총 2문제로 되어있어서 복잡해보일 수 있지만 단순히 Quick sort를 구

[C언어 자료구조] Merge Sort 문제 : 개념 설명 및 코드 구현 [내부링크]

< 문제 > 문제 1 : Merge sort를 이용하여 파일 in1.txt에 포함된 알파벳 소문자들의 집합을 non-increasing order로 정렬하여 출력하라. 문제 2 : Merge Sort를 이용하여 파일 in2.txt에 포함된 record들의 집합을 주어진 key에 대해 non-increasing order로 정렬하여 key와 함께 출력하라. Record는 1개의 정수와 1개의 알파벳 소문자로 구성된다. Key가 1일 경우 모든 record는 숫자에 대해 정렬한다. Key가 2일 경우 모든 record는 알파벳 소문자에 대해 정렬한다. < 실행 예제 1 > in1.txt c b c a in2.txt 5 c 2 b 3 c 4 a < 화면 출력 > c c b a Scanf_s로 1 입력 시 5 c 4 a 3 c 2 b Scanf_s로 2 입력 시 5 c 3 c 2 b 4 a < 개념 설명 > 이전 글인 Quick Sort와 똑같은 문제이나 non-increasing 이며 S

[C언어 자료구조] Heap Sort 문제 : 개념 설명 및 코드 구현 [내부링크]

< 문제 > Heap Sort를 이용하여 파일 in.txt에 포함된 정수들의 집합에 대해 내림차순으로 정렬하여 화면에 출력하라. 처음 숫자는 정수의 개수를 뜻한다. 그 다음 숫자부터 배열에 들어갈 숫자이다. < 실행 예제 > in.txt 6 5 41 3 19 42 40 < 화면 출력 > 42 41 40 19 5 3 < 개념 설명 > Heap Sort 방식은 이름에서 알 수 있듯이 Max Heap, Min Heap을 이용한 Sorting 방식이다. 예전 글에 Max Heap과 Min Heap에 대한 글이 있는데 개념에 대한 이해는 그걸 보고 오면 좋을 것 같다. Max Heap을 Deletion 하면서 출력을 한다고 생각해보자. 그러면 큰 숫자들이 순서대로 계속 출력될 것이다. Min Heap을 Deletion 하면서 출력하면 작은 숫자들이 순서대로 출력될 것이다. 즉, Max Heap : 내림차순 정렬 Min Heap : 오름차순 정렬 할 때 사용한다. 이번 문제는 내림차순 정렬이다

[논리 회로] Introduction [내부링크]

논리회로 첫 블로그입니다. 논리회로에 대해 다룰 예정이며 목차는 아래와 같습니다. < Contents > Boolean Algebra Minterm and Maxterm Expansions Karnaugh Maps Quine-McCluskey Method Multi-Level Gate Circuits Combinational Circuit Design and Simulation Using Gates MUX, Decoders, and Programmable Logic Devices Latches and Flip-Flops Registers and Counters < Basic Conception > Logic은 총 2가지로 나눌 수 있습니다. 1. Combinational Logic(CL, 조합논리) - 현재의 출력은 현재의 입력에만 영향을 받는다. 위 contents로 보면 7장까지가 C.L. 을 다룹니다. 2. Sequential Logic(SL, 순서논리) - 현재의 출력은 현재

[C언어 자료구조] Undirected graph의 DFS 구현 : 개념 설명 및 코드 구현 [내부링크]

주어진 undirected graph에 대한 adjacency low diagonal matrix를 파일 in.txt로 입력 받은 뒤 scanf로 입력 받은 vertex로부터 depth first search(DFS) 결과를 화면에 출력하는 과정을 반복하라. scanf로 입력 받은 vertex가 -1이면 수행을 멈춘다. in.txt의 구성은 vertex의 개수를 알려주고 lower diagonal 부분을 표시한다. < 실행 예제 1 > in.txt 5 1 1 0 1 0 1 1 0 0 1 < 화면 출력 > scanf 입력 : 2 2 1 3 4 5 scanf 입력 : 4 4 1 2 3 5 scanf 입력 : -1 프로그램을 종료합니다. < 실행 예제 2 > in.txt 6 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 < 화면 출력 > scanf 입력 : 1 1 2 5 6 4 scanf 입력 : 3 3 scanf 입력 : 5 5 2 1 4 6 scanf 입력 : -1 프로그램을

[C언어 자료구조] Undirected Graph의 BFS 구현 : 개념 설명 및 코드 구현 [내부링크]

Queue를 이용하여 Breadth First Search 알고리즘을 직접 만들어 구현하고, 주어진 undirected graph에 대한 adjacency matrix를 파일 in.txt로 입력 받은 뒤, scanf로 입력 받은 vertex로부터 Breadth First Search의 수행 결과를 화면에 출력하는 과정을 반복하라. 단, scanf로 -1을 입력 받으면 수행을 종료한다. < 실행 예제 1 > in.txt 5 1 1 0 1 0 1 1 0 0 1 < 화면 출력 > scanf 입력 : 2 2 1 3 4 5 scanf 입력 : 4 4 1 3 5 2 scanf 입력 : -1 프로그램을 종료합니다. < 실행 예제 2 > in.txt 6 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 < 화면 출력 > scanf 입력 : 1 1 2 4 6 5 scanf 입력 : 3 3 scanf 입력 : 5 5 2 1 6 4 scanf 입력 : -1 프로그램을 종료합니다. < 개념 설명 >

[C언어 자료구조] Undirected Graph의 Connected Components, cycle 찾기 문제 : 개념 설명 및 코드 구현 [내부링크]

주어진 Undirected graph에 대한 adjacency matrix를 파일 in.txt로 입력 받은 뒤, 다음 문제를 수행하라. in.txt는 처음에 vertex의 개수가 주어지고 matrix의 lower diagonal부분만 표시하고 있다. < 단계 1 > 이 graph에 있는 connected component의 개수를 화면에 출력하라. < 단계 2 > 이 graph에 있는 cycle이 있으면 yes, 없으면 no를 출력하라. < 실행 예제1 > in.txt 5 1 1 1 0 0 0 0 0 0 0 < 화면 출력 > 단계 1 : 3 단계 2 : yes < 실행 예제 2 > in.txt 6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 < 화면 출력 > 단계 1 : 1 단계 2 : yes < 실행 예제 3 > in.txt 7 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 < 화면 출력 > 단계 1 : 2 단계 2 : no < 개념 설명 >

[C언어 자료구조] Kruskal Algorithm 문제 : 개념 설명 및 코드 구현 [내부링크]

파일 in.txt로 표현된 weighted undirected graph에 대해 Kruskal's algorithm을 적용하여 minimum cost spanning tree를 구하여 화면에 출력하라. in.txt의 맨처음 숫자는 vertex 개수이며, 그 다음 숫자들은 matrix의 lower digonal 부분들을 표현한다. Minimum cost spanning tree는 입력 파일과 같은 형식으로 출력할 것. < 실행 예제 1 > in.txt 5 1 6 2 0 7 3 0 0 4 5 < 화면 출력 > 5 1 0 2 0 0 3 0 0 4 0 < 실행 예제 2 > in.txt 4 1 2 3 6 4 5 < 화면 출력 > 4 1 2 0 0 4 0 < 개념 설명 > Weighted Undirected Graph : 가중치가 존재하는 무방향성 그래프를 뜻한다. 즉 각 edge마다 가중치를 부여한다. 이것은 그 edge를 가는데 소요되는 비용으로 해석하면 된다. Spanning Tree :

Machine Learning - Dimensionality Reduction : PCA [내부링크]

PCA(Principal Component Analysis)는 번역하자면 주성분 분석입니다. PCA's Goal : 데이터의 분산을 최대한 보존하면서 차원을 축소시키는 방법. 다른 말로, 원래 데이터의 분산을 최대한 보존하게 해주는 기저의 집합을 찾는 것. Basis(기저) : 어떤 벡터공간에서 V 벡터들이 선형독립이면서 벡터공간 전체를 생성할 수 있다면 이 V를 기저라합니다. 2차원을 예로 들면 우리는 (1, 0)과 (0, 1)만 있다면 이 두 개에 상수배를 함으로써 모든 2차원 공간을 표현할 수 있습니다. 따라서 (1,0)과 (0, 1)은 bases가 됩니다. 물론 (2, 0), (0, 2)도 bases가 될 수 있고 bases는 다양합니다. 다만, 확실한 건 2차원의 경우 기저는 2개라는겁니다. The number of bases는 정해져있습니다. 우리는 데이터들을 이 bases에 정사영시킬 것이고 그에 따라 한차원 낮춘 데이터가 만들어 질겁니다. 따라서 이 정사영을 시켰을 때

[C언어 자료구조]Max Heap, level order traversal 문제 : 개념 설명 및 코드 구현 [내부링크]

< 단계 1 > 파일(in.txt)로 주어진 정수들을 차례대로 max heap에 모두 insertion한 후, 결과로 얻어진 max heap을 level order traversal하여 화면에 출력하라. < 단계 2 > scanf로 x 값을 입력 받아, 단계 1에서 구성된 max heap에서 x번 delete한 뒤, 결과로 얻어진 heap의 내용을 level order traversal하여 화면에 출력하라. < 실행 결과 예제 1 > in.txt 5 3 1 2 4 6 < 화면 출력 > 6 4 5 2 3 1 Scanf_s : 1 5 4 1 2 3 <실행 결과 예제 2 > in.txt 1 2 3 4 5 6 < 화면 출력 > 6 4 5 1 3 2 Scanf_s : 2 4 3 2 1 문제는 위와 같다. 이 문제를 풀기 위해서는 max heap의 개념과 level order traversal 개념을 알아야 한다. 이 블로그는 개념을 자세히 설명해주는 블로그가 아닌 코드를 공유하는 블로그이므로

[C언어 자료구조] Min Heap 문제 : 코드 구현 [내부링크]

in.txt에 학생 명단(학번, 이름)이 집합으로 표현되었으며, 정렬이 되어 있지 않은 상태이다. key를 학번으로 하여 min heap에 차례대로 추가함으로써 학생 명단에 대한 min heap을 구성하라. 그 뒤, min heap에 있는 모든 원소의 개수만큼 deletion을 적용하며, deletion되는 학생의 학번과 이름을 차례대로 화면에 출력하라. < 실행 결과 예제 1 > in.txt 5 ee 3 ccc 1 aa 2 bb 9 iii < 화면 출력 > 1 aa 2 bb 3 ccc 5 ee 9 iii < 실행 결과 예제 2 > in.txt 1 aaa 3 cc 5 ee 2 b 4 dd < 화면 출력 > 1 aaa 2 b 3 cc 4 dd 5 ee < 실행 결과 예제 3 > in.txt 2 bb 4 dd 6 ff 8 hh 1 aaa 3 c 5 eee < 화면 출력 > 1 aaa 2 bb 3 c 4 dd 5 eee 6 ff 8 hh 이전 글인 Max Heap 문제와 유사하다. 다만

[C언어 자료구조] : Binary Search Tree와 Level order traversal 문제 : 개념 설명 및 코드 구현 [내부링크]

파일 in.txt에 주어진 원소들을 차례대로 binary search tree에 insert하는 프로그램을 구성하라. 단, 삽입할 원소가 이미 tree에 있는 경우에는 삽입하지 않도록 처리한다. tree가 모두 구성된 후, tree를 level order traversal한 결과를 출력하라. < 실행 결과 예제1 > in.txt 5 2 3 1 2 9 < 화면 출력 > 5 2 9 1 3 < 실행 결과 예제2 > in.txt 4 1 3 2 5 9 8 < 화면 출력 > 4 1 5 3 9 2 8 < 개념 설명 > 1. Binary Search Tree(BST) BST란 왼쪽 자식은 자신보다 작고, 오른쪽 자식은 자신보다 큰 값으로 구성된 Tree이다. 같은 값은 보통 허용하지 않는다. level order traversal에 관한 내용은 이전 글에 있으니 참고하면 될 것 같다. 바로 실행 결과 예제 2를 통해 알아보겠다. 1. 4를 넣는다. 4 2. 1을 넣는다. 4 1 3. 3을 넣는다.

[C언어 자료구조] Binary Search Tree와 level order traversal 문제2 : 코드 구현 [내부링크]

파일 in.txt에 주어진 명령을 이용하여 원소들을 차례대로 BST에 insert하거나 BST에서 원소를 search하는 프로그램을 구성하라. 삽입할 원소가 tree에 이미 있는 경우에는 "(해당원소) cannot be inserted"를 출력한 뒤 tree에 삽입하지 않도록 처리한다. 원소를 삽입할 때마다 tree를 level order traversal한 결과를 출력하고, search명령이 있는 경우 search에 성공하면 "(해당원소) is in T", 실패하면 (해당원소) in not in T를 화면에 출력하라. < 실행 결과 예제1 > in.txt A 5 A 2 S 1 S 5 A 3 A 4 A 3 S 3 < 화면 출력 > A 5 : 5 A 2 : 5 2 S 1 : 1 is not in T S 5 : 5 is in T A 3 : 5 2 3 A 4 : 5 2 3 4 A 3 : 3 cannot be inserted S 3 : 3 is in T < 실행 결과 예제2 > in.txt

[C언어 자료구조] Undirected Graph의 adjacency matrix and linked adjacency list 문제 : 개념 설명 및 코드 구현 [내부링크]

5개의 vertex로 구성된 주어진 undirected graph에 대해 adjacency matrix를 구성하여 화면 출력한 뒤, linked adjacency list로 변환하여 화면 출력하라. < 실행 결과 예제 1 > in.txt 1 2 2 3 < 화면 출력 > 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 v1 : 2 v2 : 3 1 v3 : 2 v4 : v5 : < 실행 결과 예제 2 > in.txt 2 3 2 4 3 4 < 화면 출력 > 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 v1 : v2 : 4 3 v3 : 4 2 v4 : 3 2 v5 : < 실행 결과 예제 3 > in.txt 1 3 2 3 2 4 3 4 4 5 < 화면 출력 > 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 v1 : 3 v2 : 4 3 v3 : 4 2 1 v4 : 5

[C언어 자료구조] Union Find의 Weighted Union, Collapsing find 문제 : 개념 설명 및 코드 구현 [내부링크]

주어진 입력에 의해 weighted union과 collapsing find 알고리즘을 이용하여, union, find를 구현한다. Union 또는 find를 수행할 때마다 변경된 parent array를 출력하고, 또한 find x를 수행할 때는 x가 속한 set의 root 원소값을 출력하라. 입력은 파일 in.txt로 주어진다. U는 union 명령이고 F는 find 명령을 표시함. n값이 첫째 줄에 표시 됨. < 실행 예제1 > in.txt 5 U 0 1 F 0 U 2 3 U 3 4 F 2 U 3 5 U 3 1 F 0 < 화면 출력 > U 0 1 : 1 -2 -1 -1 -1 -1 F 0 : 1 -2 -1 -1 -1 -1 1 U 2 3 : 1 -2 3 -2 -1 -1 U 3 4 : 1 -2 3 -3 3 -1 F 2 : 1 -2 3 -3 3 -1 3 U 3 5 : 1 -2 3 -4 3 3 U 3 1 : 1 3 3 -6 3 3 F 0 : 1 3 3 -6 3 3 3 < 실행 예제2 >

Machine Learning : Introduction [내부링크]

이 블로그는 Machine Learning에 대한 내용을 다룹니다. 현재 Machine Learning에 대해 배우고 있으며 이 배운 내용을 저장 및 다른 사람들에게도 공유하기 위해 블로그를 작성해봅니다. Machine Learning(ML) : ML is a study of computer algorithms that can improve automatically through experience and by the use of data. ML은 간단히 말하자면 training data들을 통해 기계가 직접 학습하며 그 학습을 바탕으로 현재 혹은 미래의 데이터를 파악하는 것입니다. < Classification of Machine Learning > ML을 크게 위와 같이 나눌 수 있습니다. 이 외에도 Deep Learning도 있으나 기본적인 ML 내용을 모두 다룬 후에 Reinforcement Learning(RL), Deep Learning(DL)을 다룰 예정입니다. 아래의

Machine Learning : Dimensionality Reduction [내부링크]

이번 내용은 Training data의 Pre-Processing과정 중 하나인 Dimensionality Reduction에 관한 내용입니다. 그전에 Machine Learning Process에 대해 간단히 살펴보겠습니다. 일반적으로 Training data는 다소 다루기 복잡한 경우가 많습니다. 특히 차원이 우리가 아는 일반적인 3차원과는 달리 데이터는 10000차원인 경우도 생깁니다. 이러한 다루기 복잡한 데이터를 Pre-processing을 통해 다루기 쉽도록 만들어줍니다. 대표적인 것이 Dimension Reduction(차원 축소)입니다. Dimension Reduction(차원 축소) : 말 그대로 데이터의 차원을 줄여주는 방법입니다. 크게 Feature Selection과 Feature Extraction으로 나눌 수 있습니다. Feature Selection은 일부 필요한 feature만 선택해서 사용한다는 의미입니다. 모델 성능을 높이는 기술이며 Selection