목록Computer Science (21)
나만의 개발 로그 | 고민 로그
OverLoading 한 클래스 내에서 동일한 이름의 메서드를 여러개 갖는 것 메서드의 이름은 같지만 매개변수의 갯수 or 순서 or 타입이 달라야함 리턴타입만 다른 경우 오버로딩이 아니다. 사용이유 1. 같은 기능을 하는 메소드를 하나의 이름으로 사용할 수 있다.2. 메소드의 이름을 절약할 수 있다.(프로그래머의 입장에서 메소드 네이밍에 관한 고민은 큰 스트레스다) OverRiding 상속받은 부모 클래스의 메소드를 재정의하여 사용하는 것 메소드의 동작만을 재정의하는 것이므로, 메소드의 선언부는 기존 메소드와 완전히 같아야 한다.즉, 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 타입이 모두 같아야 한다오직 내용만을 새로 정의한다. 메소드 return 타입의 변환시 부모 클래스 ret..
복잡도 알고리즘(어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어 내는 과정)의 성능을 판단하는 개념 시간 복잡도 알고리즘을 수행하는 데 걸리는 시간 시간 복잡도는 정확한 프로그램이 실행 시간을 초단위로 표기하는 것이 아니라, 명령문의 실행 빈도수에 따라 대략적으로 소요 시간을 나타내기 위해 사용 시간 복잡도를 줄이는 방법 반복문의 숫자를 줄이기 조건문 줄이기, n * 조건문 숫자 만큼 되니까 자료구조를 적절하게 이용하기, 가장 효율적인 자료구조들을 적절히 사용한다면 시간 복잡도를 최대한 줄일 수 있음 알고리즘을 적절하게 이용하는기, 대표적으로 이진 탐색, 정렬 알고리즘 등이 있음 Big-O 표기법 복잡도 관련 표기법 복잡도 함수의 최고차항의 차수에 O를 씌운 표기법으로 이 알고리즘이 가장 늦..
Stack데이터를 차곡차곡 쌓아 올린 자료구조 데이터가 순서대로 쌓이고 마지막에 쌓인 자료가 먼저 삭제되는 구조로 LIFO(Last In First Out), 후입선출 구조 스택에서 삽입 연산은 push(), 삭제 연산은 pop()시간 복잡도는 삽입, 삭제는 O(1)이고 탐색은 O(N) 대표적인 예로 실행 취소(undo), 웹페이지의 뒤로 가기, 역순 문자열 만들기, 수식의 괄호 검사 등이 있다. QueueStack과 다르게 먼저 들어온 것이 먼저 나가는 선입선출 구조를 가지고 있음, FIFO(First In First Out) 큐에서 삽입 연산은 offer(), 삭제 연산은 pull()시간 복잡도는 스택과 동일하다. LinkedList를 가지고 만드는 것이 유리하며 자료의 추가는 Enqueue, 삭제..
프로그래밍 패러다임 :프로그래머에게 프로그래밍의 관점을 갖게 해주는 개발 방법론 객체 지향 : 프로그램을 상호 작용 하는 객체들의 집합으로 봄 모듈화가 쉽고, 유지 보수성이 높다. 캡슐화 추상화 상속성 다형성 SOLID 원칙 https://tw-dev.tistory.com/84 이전에 정리한 게시글 참고하기 단점 : 설계에 많은 시간 소요, 처리 속도가 다른 프로그래밍에 비해 느림 함수형 : 프로그램을 상태 값을 지니지 않는 함수 값들의 연속으로 봄 작은함수들을 블록처럼 쌓아 로직을 구현하고 고차 함수를 통해 재사용성을 높인 프로그래밍 패러다임 고차 함수 : 함수가 함수를 값처럼 매개변수로 받아 로직을 생성하는 것 Java는 Stream,Lambda를 이용해서 함수형 코드 작성 가능 함수의 동작부가 간결..