본문 바로가기

전체 글159

[알고리즘] LCS(Longest Common Substring or Subsequence) 1. LCS란 최장 공통 부분수열(L.C.Subsequence) 혹은 최장 공통 문자열 (L.C.Substring)을 말한다. 각각의 차이는 아래 그림과 같다. 최장 공통 부분수열은 BCDF, BCDE가 될 수 있다. 부분 수열은 분자 사이를 건너뛰어 공통이 되면 가장 긴 문자열을 찾으면 된다. 최장 공통 문자열은 BCD로 부분 문자열이 아니기 때문에 한번에 이어져 있는 문자열만 가능하다. 1. 최장 공통 문자열(Longest Common Substring) class Solution_0045 { public static int solution(String a, String b) { int[][] cal = new int[a.length() + 1][b.length() + 1]; int ans = 0; .. 2023. 11. 6.
[Spring] IOC 컨테이너 1. IOC 란 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미 컴포넌트 의존 관계 설정(Component dependeny resolution), 설정(Configuration) 및 생명주기(LifeCycle)을 해결하기 위한 디자인 패턴 2. IOC 컨테이너 스프링 프레임워크에서 객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨테이너 일반적 컨테이너 : 객체의 생명주기 관리, 생성된 인스턴스들에게 추가적인 기능 제공 인스턴스 생성부터 소멸까지 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해준다 객체 관리 주체가 프레임워크가 되기 떄문에 개발자는 로직에 집중할 수 있는 장점이 있다. IoC 컨테이너는 객체의 생성을 책임지고 의존성 관리 POJO의 생성, 초기화.. 2023. 10. 31.
[CS] 객체 지향 프로그래밍 간단히 1. 객체지향 이란? 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 객체들간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 장점 코드 재사용 용이 유지보수의 우수성 대형 프로젝트 적합 단점 개발속도가 느림 실행속도 느림 코딩 난이도 상승 2. OOP의 4가지 특징 캡슐화 : 데이터와 코드의 형태를 외부로부터 알 수 없게 하고, 데이터의 구조와 역할, 기능을 하나의 캡슐 형태로 만드는 방법 캡슐화방법1) 멤버 변수 앞에 접근 제어자 private를 붙인다. 캡슐화방법2) getter, setter를 만든다. 추상화 : 클래스들의 공통적인 특성(변수, 메소드)들을 묶어 표현하는 것 컴퓨터라는 클래스를 extends하여 데스크탑과 노트북 클래스를 만드는 것, 반대로 데탑과 노트북을 .. 2023. 10. 27.
[JAVA] Overloading, overriding 1. Overloading이란? 정의 : 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의 할 수 있다. 조건 : 메소드의 이름이 같고 매개변수의 개수나 타입이 달라야 한다. 주의 점: 리턴 값만 다른 것은 오버로딩이 불가능 하다. 사용하는 이유 같은 기능을 하는 메소드를 하나의 이름으로 사용 가능 메소드의 이름을 절약할 수 있다. 2. Overriding 이란? 정의 : 부모 클래스로 부터 상속 받은 메소드를 자식 클래스에서 재정의하는 것 조건 : 오버라이딩 하려는 메소드의 이름, 매개 변수, 리턴 값이 모두 같아야한다. 오버라이딩에서 접근 제어자를 설정하는 규칙 자식 클래스에서 오버라이딩 하는 메.. 2023. 10. 27.