본문 바로가기
728x90

공부164

논리회로설계 스펙에서부터 상태천이도를 구하는 과정을 알아봅시다. FSM(Finite State Machine) 상태유한기는 상태가 유한한 회로인데 즉 순차회로라는 뜻입니다. 다음 순차회로는 Binary String에서 특별한 패턴 "1011" 찾는 회로입니다. 1011을 찾으면 출력이 1이 되어야합니다. ex)01101101100 가 들어옵니다. 01101101100 이 부분과 01101101100 에서 출력 1이 나옵니다. 출력 : 00000100100 이런 식이 되겠죠. 그럼 이러한 동작을 하는 상태천이도를 그려보겠습니다. 순차회로는 두가지 타입이 존재 합니다. 밀리머신(Mealy Machine)과 무어머신(Moore Machine)인데요. 밀리머신 : 출력이 현재상태와 입력에 의해서 결정 무어머신 : 출력이 현.. 2020. 6. 2.
계수 정렬(Counting Sort) 이때까지 배운 O(N log N)의 시간복잡도인 선택, 버블, 삽입 정렬 그리고 O(N^2)의 시간복잡도인 퀵, 병합, 힙 정렬을 배웠습니다. 가장 빨랐던 정렬은 아무래도 퀵정렬이었는데요. 이거보다 빠르게 정렬을 하는 계수 정렬에 대해 알아보겠습니다. 다음의 5 이하 자연수 데이터들을 오름차순 정렬하세요. 1 3 5 2 3 1 3 4 4 3 4 2 3 4 3 1 1 2 4 3 3 1 2 3 4 5 1 3 2 4 정렬할 데이터 개수가 30개입니다. 특징은 모든 데이터가 1부터 5 사이입니다. 계수 정렬은 이처럼 적절한 '범위 조건'이 있어야한다는 전제에서 굉장히 빠른 알고리즘입니다. 그 속도는 O(N) 입니다. ( 저도 처음보는 시간복잡도의 속도입니다.) 계수 정렬(Counting Sort)는 단순하게 '.. 2020. 6. 1.
힙정렬 저번주에 공부하긴 했지만 이해하는데 좀 시간이 걸리는 바람에 지금 포스팅합니다. 힙정렬은 퀵정렬과 병합정렬과 더불어 시간복잡도 O(nlogn) 을 가진 정렬입니다. 힙정렬을 이해하기 위해서는 완전 이진 트리를 이해해야하는데요. 이진 트리는 자식노드가 두개 이하 트리를 의미합니다.. 여기서 가장 위에 있는 7은 루트노드(root)입니다. 그리고 8과 5의 부모노드입니다. 2와 3은 8의 자식노드입니다. 가장 밑 부분인 2 3 1 2 는 리프노드(leaf)라고 합니다. 트리는 다양하게 생길 수 있습니다. 이런식도 가능합니다. 그 중에서 이진 트리는 자식노드가 두개 이하인 트리이고 완전 이진트리는 자식노드가 두개인 트리를 의미합니다. 간단하죠? 힙은 이런 완전 이진트리를 사용합니다. 한번 트리를 만들어 볼까요.. 2020. 6. 1.
파이썬 rstrip,lstrip,strip 파이썬 함수인 rstrip() , lstrip, strip() 는 공백을 제거해주는 함수입니다. r은 오른쪽 l은 왼쪽 strip()는 양쪽 둘다의 공백을 제거해줍니다. 이는 문자열을 여러개 한꺼번에 받을때 개행문자 '\n'을 제거할때 유용하게 사용이 됩니다. 결과 값은 이렇게 나옵니다. 2020. 5. 30.
728x90