본문 바로가기

(탈퇴) 테슬라's Post

음?... 후기랄까요? 안녕하세요~ 테슬라 입니다. 만우절이에요~ 모두 낚이셨죠? 위에건 무시하시고요~ 요번에 이진트리와 그래프를 했습니다. 네. 제가 많이 미숙하여 부족한 부분이 있었던 기억이 새록새록하군요... 일단 그래프는 이걸로 끝을 본 것 같습니다. 제가 알고 있는 부분이 여기까지 인지라... 사실 제가 공부했던 경우에는 그래프 뒤에 최단거리를 구하는 알고리즘이 소개되었었는데요. 제가 그 부분은 아쉽게도 모르는 부분이라 설명해드리기가 힘들 것 같습니다. 제가 나중에 학습하여 포스트의 기회를 가지도록 하겠습니다. 다음 포스트 주제를 사실 정렬을 하고자 했지만, 아쉽게도 리턴군이 해서... 해서 다음 포스트 주제를 못정했어요...!!!! 떡밥이 다 떨어진 것이죠...!!! 아직 배움이 얕은지라 무엇을 해야할지 구체적으로 .. 더보기
Tesla's post 연기 공지 우아 이거... 이번주는 단체로 바쁘군요. 제가 사실 요즘 들어서 제 시간에 포스팅을 못하고 있습니다.(으, 죄송합니다.) 다음주까지는 아마 살짝 이런 현상이 지속될 거 같습니다. 아 그리고 오늘자 포스트는 수요일에 올라갈 것 같습니다. 넓으신 아량으로 용서해주세요. 더보기
그래프 - Prim식 최소신장트리?? 안녕하세요~ 테슬라 입니다. 저번에 이어서 이번 포스트는 최소신장트리 구현방식중에 하나인 Prim식 최소신장트리에 대해서 알아보도록 합시다. 저번 포스팅때 했던 Kruskal식을 생각해보죠... 그냥 가중치가 작은 순서대로 간선들을 이어서 하나의 최소신장트리를 만들었죠? 하지만 그 방법은 생각해보면 여러개의 트리를 잇고 이어서 하나의 큰 트리를 만드는 것이라고 생각할 수 있습니다. 예를 들어볼까요?이런 그래프가 있다고 하죠. Kruskal식의 경우 라면, 이런 방법이지요? 이때 보시는 것처럼 여러개의 트리가 생긴 뒤 마지막에 모두 이어지는 모습을 보실 수 있으실거에요. 그런데 Prim식은 그런식으로 나눠져있다가 연결되는 방식을 거부한다는 것이지요. 말인즉슨, 하나의 트리에 계속 하나하나 간선들을 추가해서.. 더보기
Tesla's Post 연기 공지 으악 요즘엔 제시간에 포스트를 한적이 굉장히 오래전으로 느껴지네요. 지금도 내일 시험이라 깜빡했다가 Dlbo군보고 떠올랐습니다. 요즘 정신을 어디다 두고 다니는지... 포스트는 수요일까지 올리도록 하겠습니다. 죄송합니다. 더보기
그래프 - Kruskal식 최소신장트리?? 안녕하세요~ 모두 잘 지내시죠~ 테슬라 입니다. 오늘은 저번 포스트에 이어 최소신장트리에 대해서 하고자 합니다. 오늘의 주제는 무엇인고 하니 최소신장트리를 구성하는 방법중에 하나인 Kruskal식의 최소신장트리입니다. Kruskal식이란 무엇인가? 하니 가중치가 적은 순서대로 연결하는 방식을 말합니다. 각각의 간선마다 가중치가 존재하지요? 이 가중치들을 적은 순서대로 놓아보세요. 그 다음에 차근차근 작은 순서대로 간선들을 연결하지요. 단! 저번 포스트에서 말씀드린대로 최소신장트리는 사이클이 없어야겠죠? 오늘도 역시 예를 들어보지요~ 자 이 그래프에는 5개의 간선들이 존재합니다. (저번거와는 가중치가 다릅니다. 네) (1,2), (1,3), (1,4), (2,3), (3,4) 이렇게 5개가 있습니다. 이걸.. 더보기
Tesla's Post 연기 공지 아아... 요즘에 다들 바쁜가 봅니다. 저도 휴가 나온 친구 만나는지라... 포스팅이 늦어질 것 같습니다. 죄송합니다. 내일은 개인적인 일이 있고... 수요일에 활기차게 다음 포스트를 들고 찾아오겠습니다. 더보기
그래프 - 최소신장트리(Minimum spanning tree)?? 안녕하세요~ 오늘도 찾아왔습니다. 오늘은 굉장히 아주 굉장히 짧을 것 같습니다. 오늘은 저번에 말씀드린대로 최소신장트리(Minimum spanning tree)에 대해서 알아보고자 합니다. 저번시간에 신장트리에 대해서 말씀드렸었죠? 신장트리는 쉽게 말해 모든 정점을 연결한 트리를 말하는 것이지요? 연결을 최소로 한... 자 그럼 오늘 할 최소신장트리란 무엇인가? 신장트리에 최소가 들어갔네요. 음, 간단하게 해석하면 신장트리를 최소로 한다라고 할 수 있겠네요... 그런데 뭘 최소로 하는 걸까요? 여러분 지하철 타 보셨죠? 지하철로 예를 들어볼까요? 음 지하철을 타고 어떠한 지점에 간다고 할 때 최소한의 역을 통과해서 원하는 역에 도착할 수 있지요? 그런데 만약 다양한 길이 존재할 때 똑같은 정거장 수라도 .. 더보기
Tesla's Post 공지 아... 네... 안녕하세요~ 잘 지내시죠? 이번에도 어김없이 새로운 학기가 시작되었군요... (물론 아닌 분들도 계시지요...ㅎㅎ) 그래서 그런지 오늘과 내일은 좀 시간이 안될거 같아서요... 수요일에 시간이 될 듯 합니다. 포스팅은 그 때 하도록 하겠습니다. 시간을 지키지 못해서 죄송합니다. 더보기
그래프 - 신장트리(Spanning tree)?? 네 안녕하심까~ 테슬라입니다. 자, 모두 개학 시즌이시죠? 새로운 마음으로 시작해볼까요? 오늘은 신장트리(Spanning tree)에 대해서 써볼까 합니다. 음 신장트리란 무엇인가? 임의의 그래프 G에 대한 부분그래프중에서 모든 정점과 연결된 부분 그래프를 말합니다. 부분그래프는 저번에 설명한 것과 같이 어떠한 그래프 G의 정점과 간선을 이용하여 만들수 있는 그래프를 말합니다. 집합에서 부분집합을 떠올리시면 되는것이지요. 단, 연결은 최소한으로 합니다. 괜시리 필요없이 간선을 사용 할 필요가 없다는 것이지요. 아무튼 이러한 부분그래프 중에서 이을 수 있는 모든 정점을 이으셔서 하나의 그래프를 만드시는 것이지요. 예를 들어볼까요? 자 요런 그래프가 있다고 하지요. 자 요런것들은 신장트리라고 할수 있을까요?.. 더보기
Tesla's Post 연기 공지 음 방학의 끝자락이라 그런지 정신없이 바뻐요...;; 이번주 내로 시간 내서 올리도록 하겠습니다. 으아 요즘에 제대로 시간을 못 맞추네요...죄송합니다. 더보기
그래프(Graph) - 깊이우선검색(DFS)?? 안녕하세요~ 몰아하는 숙제에 치이며 사는 테슬라입니다. 오늘은 저번 시간에 이어 양대산맥중의 하나인 깊이우선검색(DFS = Depth First Search)에 대해서 포스팅하는군요. 깊이우선검색은 너비우선검색과는 다르게 시작 정점에서 하나만 죽어라 파고 들어가는 것이지요. 더 이상 파고 들어갈게 없으면 방문하지 않았던 남은 곳에서 이어서 다시 끝까지 파고드는 것을 반복하는 것이지요. 여기서도 방문했다는 체크는 필요합니다. 하지만 저번의 너비우선검색과는 약간 다릅니다. 왜 다를까요? 이유는 담아두는 방식의 차이입니다. 너비우선검색은 큐를 사용했지요? 그렇다면 깊이우선검색은 스택을 사용합니다. 큐는 먼저 들어가면 어떻게 되도 먼저 나올 수 밖에 없기 때문에 들어갈때 체크해도 상관없지만, 스택의 경우 먼저에.. 더보기
Tesla's Post 공지 으아 죄송합니다. 방학이 막바지에 들어가니 할일이 산더미네요. 방학 과제 몰아서 하는 초등학생의 기분을 느끼고 있습니다. 포스트는 오늘 새벽이나 늦어도 내일까지는 올리겠습니다. 더보기
그래프(Graph) - 너비우선검색(BFS)?? 자 돌아왔습니다. 점차 불량 마감 작가와 같이 변해가는군요...흑흑 자 오늘은 그래프에서 너비우선검색에 대해서 해보도록 하겠습니다. 자 저번시간에 표현법에 대해서 했지요? 그런데 컴퓨터로 표현해도 결국은 써먹어야겠지요? 트리에서도 했지만 만약에 모든 노드들을 방문해야 한다면...?? 그렇지요. 결국은 검색하는 운행법이 있어야겠지요? 트리에는 전위, 중위, 후위, 레벨 운행법이 있었죠? 그런것처럼 그래프에도 크게 너비우선검색(BFS = Breadth First Search)와 깊이우선검색(DFS = Depth First Search)이 있습니다. 오늘은 너비우선검색에 대해서 하도록 하겠습니다. 자 방문을 하려고 한다면? 그렇죠. 시작점이 있어야겠죠? 그런데 우리의 그래프...트리와는 달리 이곳 저곳 연결이.. 더보기
그래프(Graph) - 표현법?? 안녕하세요~ 무단이탈(????) 했던 테슬라입니다. 늦어서 죄송합니다. 요즘에 정신없는 나날들이여서 포스트 쓰는것도 깜빡했지 뭐겠어요... 저번시간에 그래프에 대해서 했었지요. 그런데!!! 그 그래프를 어떻게 컴퓨터로 표현해야 할까요? 그냥 그림처럼 편하게 넣을 수 있으면 좋겠지만 그게 말처럼 되는건 아니지요. 그래서 오늘은 그래프의 표현방법에 대해서 해볼게요. 자 컴퓨터로 표현하기 위한 방법으로 인접행렬(Adjacency Matrix)와 인접리스트(Adjacency List)가 있습니다. 우선 인접행렬에 대해서 알아볼까요? 만약 n개의 점을 갖는 그래프라면 인접행렬은 n*n행렬로 표현되고, 만약 두개의 점 Vi, Vj사이에 간선이 존재한다면 (i,j)에 값이 1이고 없다면 0으로 저장합니다. 배열을 이.. 더보기
Tesla's Post 연기 됩니다. 일시 : 1/26 사유 : 민족의 명절 설이라서요... 에, 이번 설에는 포스트를 올리기 힘들겠어요. 이번 주 포스트는 쉬고 다음 주에 뵙도록 할게요. 모두 모두 새해 복 많이 받으세요~~ 더보기
그래프(Graph) - 그래프?? 안녕하세요~ 오늘 이 시간에는 그래프에 대해서 알아볼까 합니다. 음 그래프란 무엇일까요? 그래프란 유한 개의 정점(V(G))과 유한개의 간선(E(G)) 구성된 집합입니다. 간선의 집합은 공집합일수도 있습니다. 즉 정점의 경우 하나도 존재하지 않는 그래프는 없지만 간선이 존재하지 않는 그래프는 존재할 수 있습니다. 예를 들어 이런 그래프가 있다고 한다면 각각의 점이라고 할수 있는 A, B, C, D는 정점이고, 이의 연결선이 간선입니다. V(G) = {A, B, C, D} E(G) = {(A,B), (A,C), (A,D), (B,D), (C,D)} 라고 할 수 있습니다. 또한 왼쪽의 경우 그래프라 할 수 있지만 오른쪽은 그래프라 할 수 없는것이지요. 그래프에는 방향성을 가지느냐 가지지 않느냐로 방향성 그래.. 더보기
Tesla's post 연기 공지 으아 연구실에 있다보니 깜빡했습니다. 집에가면 11시가 넘어서 도착할거 같아요 음 내일 아침까지 꼭 올리도록 하겠습니다 정말이에요... 진짜입니다. 더보기
이진 트리(Binary Tree) - 이진 트리의 운행 2 안녕하세요~ 이진 트리의 운행 두번째 시간이 돌아왔습니다. 오늘 아침까지 NAT씨께서 침묵상태에 빠졌어서 오늘에야 글을 쓰게 되었군요. (으아 임시 저장된 줄 알고 막 닫았다가 다시 쓰게되네요...흠흠) 오늘 다룰 부분은 중위운행법과 후위운행법, 레벨운행법인데요. 모두 그렇게 어려운 내용이 아니기 때문에 저번 전위운행법을 이해하셨던 분이라면 충분히 이해하실 수 있으실겁니다. 자 그럼 시작할게요. 음 저번 포스트를 생각해보죠. 이런 트리가 있다고 생각해보죠~ 이 트리의 경우 전위 운행법으로 운행했을때 어땠나요? A노드가 먼저 방문되고, A노드의 왼쪽인 B노드, A노드의 오른쪽인 C 순으로 방문되었지요? 이런식으로 A->B->C 이지요? 그렇다면 지금 이야기할 중위 운행법(inorder traversal)은.. 더보기
이진 트리(Binary Tree) - 이진 트리의 운행 1 안녕하세요~ 깜빡 졸았다가 깨어보니 아침이라는 루트를 밟고 있는 테슬라입니다. 오늘은 이진 트리를 운행하는 방식에 대하여 알아볼까합니다... 음 트리를 운행한다에 대해서 말씀드릴께요. 트리를 운행한다가 무슨 말인고 하니 트리의 각 노드들을 한번씩은 방문한다는 모든 노드를 한번씩 지나가는 경우를 말합니다. 그럼 왜 운행해야 할까요? 음 트리에 있는 정보를 적절하게 골고루 모두모두 사용하려고 입니다. 또는 트리 안에 있는 정보를 찾고자 할 때도 쭉쭉 찾아볼 필요도 있고, (트리가 이진 검색 트리처럼 정리가 안 되있을 수도 있지요.) 순서대로 자료들을 이동시켜야 할 때 (예컨데 트리를 리스트 형식으로 바꾼다던지...) 뭐 이럴 경우 한번씩은 확인 해야 하니까요. 음 그럼 이제 운행법에 대해서 알아볼까요? 이런.. 더보기
이진 트리(Binary Tree) - 이진 트리? 안녕하세요...늦어서 죄송합니다 테슬라입니다. 모종의 사유로 인해 이제서야 글을 올리게 되었네요. 오늘은 이진트리에 대하여 글을 쓰고자 합니다. 우선 이진트리가 무엇일까? 음 저번시간에 트리에 대해서 했죠? 음 부모에서 자식으로 노드가 연결되는 것이였지요? 일단 트리의 기본 법칙은 거의 그대로 갑니다. 하지만 이진트리는 0개이상의 노드들의 유한집합으로 된 루트라는 특벽한 노드가 있고, 나머지 노드들은 각각 교차하지 않는 2개의 분리집합으로 분할된다는 것이지요 음 분리집합이 언제나 2개로 나뉘는거랑 공집합일 수 점을 빼면 같은 내용입니다. 무슨말인고 하니 부모에서 자식으로 갈때 최대 2개까지 연결될 수 있는것이 이진노드입니다. 음...음...간단한걸까요? 뭐 이런거지요 음 이 이상으로 형제 노드가 생길수 .. 더보기
테슬라 포스트 연장 (정말 죄송합니다) 으아 어떻하제... 컴터가 폭파된 관계로 학교에서 글쓰려고 책 가져갔다가...두고 왔네요...;;; 집에와서 가방을 열어보니 학교에서 쓸려고 빼둔 책을 그대로 놓고 왔는지... 없네요...;; 죄송합니다. 죄송합니다. 내일 학교 가서 쓰겠습니다. 죄송합니다. 죄송합니다. 꼭 내일 가서 쓰겠습니다... 내일 포스트와 프로그램 올리도록 하겠습니다. 정말 죄송합니다. 프로그램은 현재 컴터가 폭파되었다가 세팅되서 온 관계로 컴파일 프로그램이 하나도 없어서요... 다시 한번 사죄 드립니다. 더보기
[공지] 12/15일 포스트 연기 공지 음 안녕하세요 테슬라 입니다. 다름이 아니오라 오늘 올리기로 되어있던 포스트를 연기하고자 합니다. 사유는 과제와 시험에 의해서이고, 시험이 끝나는대로 포스트 하도록 하겠습니다. 아마 예상으로는 금요일에서 토요일 즈음이 될 것 같습니다. 그리고 지금까지 딜레이 되고 있는 문제들도 같이 올리도록 하겠습니다. 더보기
이진 트리(Binary Tree) - 트리란? 안녕하세요~ 네 잊을만 하면 나타나는 테슬라입니다. 이번 시리즈는 이진트리에 대해서 다루어보겠습니다. 음 오늘은 간단하게 트리에 대해서 다루어 보겠습니다. 음 트리란 무엇인가... 우선 트리하면 크리스마스 트리가 떠오르지요? (크리스마스가 얼마 안 남아서요...ㅎㅎ) 네 트리하면 나무지요...네 맞아요... 음 자료구조의 트리도 나무와 비슷합니다. 루트라는 뿌리를 기점으로 가지가 뻗어나가고 끝에는 잎들이 달려있죠... 음 나무를 뒤집어 나뒀다고 해야 할 것 같군요. 맨 처음엔 뿌리(root)가 존재하고, 그곳에서 가지(branch)가 존재하며, 결국 끝에는 잎(leaf)가 붙어있습니다. 루트는 제일 상위레벨에 속하는 노드로써 그냥 맨처음에 시작하는 부분을 말합니다. 가지 즉 간선은 노드와 노드 사이를 연.. 더보기
테슬라's Post 연기 공지 ------------------------------------------------------- 연기 일시 : 11. 17, 11. 24까지 2주간. 연기 사유 : 팀 프로젝트 과제 예상 복귀 일자 : 12. 2 ------------------------------------------------------- 안녕하세요...이런 말씀을 전하게 되어 죄송합니다. 다름이 아니오라 이번 과목 중에 실습과목이 있는데... 한번에 터져버려서요... DB 오라클이 과제에 들어가서 그런지 좀 오래 걸릴거 같아요. 팀 프로젝트라 아마 매우 늦게 다니게 될 거 같아서요. 음, 팀 프로젝트가 정리되는데로 포스팅을 쓰도록 하겠습니다. 그럼 다음에 뵙도록 하겠습니다. 더보기
동적인 단일 연결 리스트 (Singly Linked List) - 큐 안녕하세요~ 오늘도 찾아온 테슬라입니다. 오늘은 큐에 대해서 할 텐데요. 저번에 올린 스택과 비슷한 수준입니다. 우선 큐에 대해 알아볼까요? 큐는 한쪽 끝에서 데이터가 삽입되고, 삭제는 반대쪽에서만 할 수 있도록 되어있는 순서리스트의 자료구조인데요. 입력과 삭제가 반대이기 때문에, 먼저 삽입된 것이 먼저 삭제되겠지요? 예를 들어 자판기에서 종이컵을 넣을 때 먼저 넣은 종이컵이 사용할때도 먼저 나오지요? 그런식으로 삽입과 삭제가 반대 방향으로 이루어 진 것을 큐라고 합니다. 때문에 큐는 선입 선출(FIFO : First In First Out)리스트 라고도 하지요. 그렇다면 이러한 큐는 어떤식으로 나타날까요? 음 아래의 그림을 보시죠... 위쪽이 연결리스트로 구현한 enqueue(큐 삽입) 밑의 그림이 개.. 더보기
동적인 단일 연결 리스트 (Singly Linked List) - 스택 안녕하십니까~ 테슬라입니다 동적 단일 연결리스트의 응용이라 생각 할 수 있는 스택과 큐를 알아보도록 하겠습니다~ 음 오늘은 우선 스택을 알아보도록 할게요. 그렇다면 우선 스택이란 무엇일까요? 스택이란 여러 개의 물건들이 쌓여있는 것을 말합니다. 예를 들어 어릴 때 가지고 놀던 블록을 위로 차곡차곡 쌓듯이 쌓는 것 말이지요. 제가 여기서 말하고자 하는 스택은 비슷한 개념이라 할 수 있지요. 컴퓨터의 자료구조에서 나오는 개념으로 스택에 저장된 데이터 항목 중에서 나중에 삽입된 것이 먼저 삭제(출력)되지요. 우리들이 식당의 배식판을 생각해보면 맨 위에 쌓인 것이 가장 마지막에 쌓였겠죠? 하지만 일반적으로 배식판들은 맨 위에서부터 사용되어가지요. 이처럼 나중에 삽입되고 먼저 삭제(출력)되므로 후입선출이라고도 불.. 더보기
테슬라 포스트 살짝 연장 안내... 에에 안녕하세요... 월요일에 학교가 늦게 끝날 것 같습니다... 사실 지금 쓰려고 했지만 문득 내일까지 과제가 2개라는 사실이 기억나서... 아마 늦게 즈음에나 쓸 수 있을거 같아요... 되도록 빨리 시간 되는대로 쓰도록 하겠습니다... 더보기
동적인 단일 연결 리스트 (Singly Linked List) - 2 이야 안녕하십니까~? 테슬라입니다... 포스팅을 쓴지 오래된것 같군요...네 오래됬군요... 음음 각설하고 드디어 동적인 단일 연결리스트 2를 쓰게됬습니다... 이번 포스팅에서는 저번에 예고한대로 노드의 삭제와 리스트의 병합에 대하여 해볼까요? 음 우선 노드의 삭제는 연결리스트에서 필요없는 데이터가 있는 리스트를 삭제하는 것입니다. 음 예를 들어 1을 삭제하려고 한다면... 그림으로 표현하자면 이런식이겠군요... 음 그림처럼 1의 노드와의 연결을 끊어버리고 앞에서 다음 노드를 가리키면, 1의 노드와의 관계는 사라지겠죠? 이후 1의 노드를 free해주면 1의 노드와는 작별하게 되는거죠~ 코드로 나타내면 다음과 같습니다... NODE *deleteNode(NODE *p,int num) { NODE *prev.. 더보기
포스팅 연기에 관하여... 안녕하세요. 테슬라입니다... 이렇게 갑자기 글을 올리게 된 이유는 시험기간의 영향으로 한동안 포스팅을 못할거 같습니다. 이번주에도 불의의 사고(...)로 못 올렸기 때문인지 더욱 죄송한 마음입니다. 아마 시험은 24일 전후로 정리될 듯 합니다. 그 후에 포스팅을 꼭 올리겠습니다...죄송합니다. 더보기
동적인 단일 연결 리스트 (Singly Linked List) - 1 안녕하세요~ 테슬라 입니다... 포스팅이 늦어서 죄송합니다...학교에 일이 있었거든요... 오늘 하고자 하는 부분은 단일 연결 리스트랍니다. 그럼 단일 연결 리스트란 무엇일까요? 노드들의 연속적인 연결을 뜻합니다. 그럼 노드란 무엇일까요~? 링크드 리스트에서 하나의 원소를 저장하는 공간으로 노드(Node)라고 합니다. 음 그림으로 볼까요? 이런 상자 모양으로 생각하시면 쉬울텐데요. Data부분엔 원하는 정보를, Next부분엔 다음의 노드의 주소를 씁니다... 노드의 포인터 부분에 다음 노드의 주소를 넣으면 줄줄이 사탕처럼 이어지겠죠? 이렇게 말이죠 아래의 코드는 기본적인 노드의 구조체 코드입니다. typedef struct pnode{ int data;//자료가 저장되는 부분 struct pnode *n.. 더보기