일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- DCP
- 대학원 급여
- API
- 머신러닝
- 영화 api
- 정규화
- 대학원 월급
- 로스트아크
- 의료 ai 대학원 월급
- 디자인패턴
- C# 프로젝트
- python
- 활성화 함수
- 파이썬 경사하강법
- 코딩테스트
- 딥러닝
- 자바 영화 api
- pandas
- 파이썬
- 백준
- 통계학
- 인공지능 깃 버전관리
- 딥러닝 실험 깃 버전관리
- 인공지능
- MLP
- Dehaze
- 자바
- 자바 프로젝트
- 디자인 패턴
- 경사하강법
- Today
- Total
목록Computer programming (33)
대학원 일기

버블 정렬 버블 정렬은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 $O(n^{2})$로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다. 양방향으로 번갈아 수행하면 칵테일 정렬이 된다. 정렬 알고리즘 중 가장 단순한 알고리즘이다. 정렬 알고리즘 시간 복잡도 비교 버블 정렬 장단점 장점 코드가 단순하여 구현하기 쉽다. (이해하기 쉬움) 적은 양의 데이터에서는 시간이 오래 걸리지 않아 적절하다. 단점 시간이 오래 걸린다. 비효율적인 방법이다. (성능이 좋지 않음) 실업무에서 사용하기 어렵다. (데이터가 많을 경우 시간이 오래 걸림) Python Code def bubbleSort(x): length = len(x)-1 for i in range(length): for j in ran..
알고리즘 알고리즘은 문제를 해결하기 위한 단계를 체계적으로 명시한 것을 의미한다. 문제를 해결하기 위한 것 명확하게 정의 순서가 있는 유한 개의 규칙으로 이루어진 작업 알고리즘의 조건 입력: 외부에서 제공되는 자료가 0개 이상 존재한다. 출력: 적어도 2개 이상의 서로 다른 결과를 내어야 한다. (모든 입력에서 하나의 출력만 나오면 안됨) 명확성: 수행 과정은 명확하고 모호하지 않은 명령어로 구성되어야 한다. 유한성(종결성): 유한 개의 명령어를 수행한 후(유한 시간 내) 종료되어야 한다. 효율성: 모든 과정은 명백하게 실행 가능(검증 가능)한 것이어야 한다. 알고리즘 연구 분야 고안: 완벽한 자동화를 통한 알고리즘의 개발은 불가능하므로 이미 증명된 유용한 알고리즘들을 습득함으로써 보다 유용한 알고리즘을..

프로토타입 패턴(Prototype Pattern) 생성할 객체들의 타입이 프로토타입인 인스턴스로부터 결정되도록 하며, 인스턴스는 새 객체를 만들기 위해 자신을 복제(clone)하는 패턴 Prototype: 인스턴스를 복사하여 새로운 인스턴스를 만들기 위한 메소드를 결정 ConcretePrototype: 인스턴스를 복사해서 새로운 인스턴스를 만드는 메소드를 실제로 구현 Client: 인스턴스 복사 메소드를 사용해서 새로운 인스턴스를 만든다 장점 객체를 생성해 주기 위한 별도의 객체 생성 클래스가 불필요하다. 객체의 각 부분을 조합해서 생성되는 형태에도 적용 가능하다. 단점 생성될 객체들의 자료형인 클래스들이 모두 clone() 메서드를 구현해야 한다.

팩토리 메소드 패턴(Factory Method Pattern) 팩토리 메소드 패턴(Factory Method Pattern) - 객체를 생성하기 위한 인터페이스를 정의하고, 어떤 클래스의 인스턴스를 생성할지에 대한 처리는 서브클래스가 결정하는 패턴 - 객체 생성을 처리하는 팩토리를 외부에 두지 않고, 서브 클래스에 둠으로써 객체 생성부를 캡슐화 한다. 수퍼 클래스와 서브 클래스의 팩토리가 서로 연관 관계를 갖되 코드 상으로는 완전히 분리시킬 수 있다. 장점 객체들을 한 곳에서 관리할 수 있다는 장점 유연하고 확장성 있는 구조 리턴 값으로 상황에 따라 서로 다른 객체를 반환 가능 단점 새로운 하위클래스를 정의 불필요하게 많은 클래스를 정의

추상 팩토리 패턴(Abstract Factory Pattern) 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴 -> 클라이언트와 팩토리에서 생성되는 객체를 분리시킬 수 있다. AbstractFactory: 개념적 제품에 대한 객체를 생성하는 연산으로 인터페이스를 정의 ConcreteFactory: 구체적인 제품에 대한 객체를 생성하는 연산을 구현 AbstractProduct: 개념적 제품 객체에 대한 인터페이스를 정의 ConcreteProduct: 구체적으로 팩토리가 생성할 객체를 정의하고, AbstractProduct가 정의하는 인터페이스를 구현 Client: AbstractFactory와 AbstractProduct 클래스에 선언된 인터페이..

빌더 패턴(Builder Pattern) 복잡한 객체를 생성하는 방법을 정의하는 클래스와 표현하는 방법을 정의하는 클래스를 별도로 분리하여, 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공하는 패턴 Director : Builder를 이용하여 객체를 생성(반환) Builder : 객체를 생성하는 방법과 형태를 가진 인터페이스 ConcreteBuilder : Builder 인터페이스의 구현체로 구현하고자하는 각 객체의 특징(형태)을 정의 Product : Director가 Builder를 이용해 생성하는 결과 객체 장점 객체 생성에 필요한 파라미터의 의미를 코드 단에서 명확히 알 수 있다. (가독성이 좋다.) 생성에 필요한 파라미터가 추가될 때 마다, 생성자 오버로딩을 안해도 된다. 단점 추..

Python 파이썬은 인터프리터 방식의 고수준 프로그래밍 언어로 "스크립트 언어"로 분류된다. 인터프리터 언어의 특징은 코드를 한 줄씩 읽어 내려가며 실행하는 프로그래밍 언어이다. -> 소스 코드 수정에 용이(but, 시간이 오래 걸림) 파이썬은 C언어로 구현되어 있다고 알려져있다. 이 말은 Python의 구현체가 CPython이고 이 CPython을 C언어로 구현했다. 따라서 파이썬은 C언어로 구현되어 있다고 알려져있다. 하지만 정확히 말하면 파이썬은 CPython으로 구현이 되었고 CPython이 C언어로 구현된 것이다. CPython은 인터프리터 이면서 컴파일러이다. 우리가 작성하는 Python 코드를 bytecode로 컴파일하고 실행한다. 다시 말해 python 코드를 C언어로 바꾸는 것이 아니라..