전체 글

전체 글

    객체 지향의 5가지 원칙

    SRP: 단일 책임 원칙(Single responsibility principle) OCP: 개방 -폐쇄 원칙(Open/closed principle) LSP: 리스코프 치환 원칙(Liskov substitution principle) ISP: 인터페이스 분리 원칙(Interface segregation principle) DIP: 의존관계 역전 원칙(Dependency inversion principle) SRP 단일 책임 원칙 Single responsibility principle 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른..

    [알고리즘] 삽입 정렬 (Insertion Sort)

    1. 삽입 정렬 (insertion sort) 삽입 정렬은 두 번째 인덱스부터 시작 해당 인덱스(key 값) 앞에 있는 데이터(B)부터 비교해서 key 값이 더 작으면, B값을 뒤 인덱스로 복사 이를 key 값이 더 큰 데이터를 만날 때까지 반복, 그리고 큰 데이터를 만난 위치 바로 뒤에 key 값을 이동 자세히 보기 https://visualgo.net/en/sorting 삽입 정렬은 데이터를 '비교'하면서 찾기 때문에 '비교 정렬의 대상이 되는 데이터 외에 추가적인 공간을 필요로 하지 않기 때문에 '제자리 정렬(in-place sort)'이기도 하다. 정확히는 데이터를 서로 교환하는 과정(swap)에서 임시 변수를 필요로 하나, 이는 충분히 무시할 만큼 적은 양이기 때문에 제자리 정렬로 보는 것이다...

    [알고리즘] 선택 정렬 (Selection Sort)

    1. 선택 정렬 말 그대로 현재 위치에 들어갈 데이터를 찾아 선택하는 알고리즘이다. 데이터를 '비교'하면서 찾기 때문에 '비교 정렬'이며 정렬의 대상이 되는 데이터 외에 추가적인 공간을 필요로 하지 않기 때문에 '제자리 정렬'이기도 하다. 정확히는 데이터를 서로 교환하는 (swap)에서 임시 변수를 하나 필요로 하나, 이는 충분히 무시할 만큼 적은 양이기 때문에 제자리 정렬로 본다. [장점] 1. 추가적인 메모리 소비가 작다. [단점]1. 시간복잡도가 O(N^2)이다. 2. 안정 정렬이 아니다. (불안정 정렬) 두 번째 단점인 안정 정렬이 아니라는 것에 대해 알아보자. [B1, B2, C, A] (A < B < C) 주의해서 볼 점은 B에 붙어있는 숫자는 임의로 붙인 숫자다. B1이 B2보다 크거나 작은..

    [알고리즘] 버블 정렬(Bubble Sort)

    1.버블 정렬 두 인접한 데이터를 비교해서, 앞에 있는 데이터가 뒤에 있는 데이터보다 크면, 자리를 바꾸는 정렬 알고리즘 [장점] 1. 추가적인 메모리 소비가 작다. 2. 구현이 매우 쉽다. 3. 안정정렬이 가능하다. [단점] 1. 다른 정렬 알고리즘에 비해 교환 과정이 많아 많은 시간을 소비한다. 자세히 보기 https://visualgo.net/en/sorting Sorting (Bubble, Selection, Insertion, Merge, Quick, Counting, Radix) - VisuAlgo VisuAlgo is free of charge for Computer Science community on earth. If you like VisuAlgo, the only "payment" t..