반응형 🌱 Computer Science/Programming14 [알고리즘] 브루트포스(brute force) 브루트포스(brute force) 무식하게 푸는 방법. 완전탐색으로도 불리기도 하는데 문제를 해결하기 위해 가능한 모든 경우의 수를 계산해서 문제를 해결하는 방법이다. 모두 탐색해서 결과를 찾기 떄문에 100% 정답을 찾는다. 다만 모두 탐색해서 시간이 오래걸린다. 자료구조에 따라 2종류로 나뉜다 선형구조일 경우 순차탐색 비선형구조일경우 BFS,DFS 일단 선형구조일때를 먼저 살펴보자. 주어진 문제를 '선형구조'로 구조화한다 구조화된 문제로 해를 구성할때까지 '순차탐색'한다. 탐색한 해를 주어진 문제의 출력형식에 맞게 정리한다. 언제사용하나? 데이터의 범위가 크지 않을경우 권장한다. 데이터의 범위가 크면 모든 경우의 수를 탐색하는데 시간이 오래걸리기 떄문이다. 사실 내가 코드를 짜는 대부분의 경우가 브루.. 2021. 6. 10. [Java] LOMBOK(롬복)란? LOMBOK(롬복)란? Java 라이브러리로 반복되는getter,setter,toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리 쓰면 뭐가좋은데? 보통 클래스에서 생성한 멤버변수에 대응되는 getter, setter,toString()메소드,생성자를 하나씩 다 작성해야함. 심지어 코드자체가 반복되는 메소드라 번거롭다. 그런데 롬복을 이용하면 코드도 보기 쉽게 작성할 수 있다! ->반복되는 코드를 줄여줌으로써 가독성UP 어노테이션을 제공하고, 이를 기반으로 코드를 컴파일 과정에서 생성해주기 때문 즉, 코딩과정에서는 롬복과 관련된 어노테이션만 보이고 getter/setter과 같은 메서드는 보이지 않는다. 하지만 그래도 실제로 컴파일된 결과물에는 코드가 생성되어 있다 어떻게 쓰는데? .. 2021. 4. 5. [Programming] JAVA(객체지향언어)특징 객체지향언어 특징 1. 상속 : 상위객체가 하위객체에게 필드와 메소드를 물려줘서 상속받아 사용할 수 있는 것 공통적인 내용이 있는 클래스에서 상속받아 사용할 수 있어서 코드의 '재사용'에 용이합니다. 2. 캡슐화 : 외부의 잘못된 사용으로 내부 객체가 손상되지 않도록 접근지정자를 통해 '정보은닉'을 하는것 객체의 필드,메소드를 하나로 묶고 실제 구현한 내용을 감추는 것 높은 응집도와 낮은 결합도를 유지할 수 있도록 설계 *응집도: 클래스나 모듈 안의 요소들이 얼마나 밀접하게 관련되어 있는지 나타내는것 *결합도 : 어떤 기능을 실행하는데 다른 클래스나 모듈들에 얼마나 의존적인지 나타내는 것 캡슐화를 통해서 낮은 결합도를 유지할 수 있게됨 3. 다형성 : 하나의 타입에 여러객체를 대입해서 다양한 기능.. 2020. 1. 12. [Programming] 오버라이딩(Overriding) Vs 오버로딩(Overloading) 정리 오버라이딩은 상속관계에서 부모클래스의 내용을 자식클래스에서 재정의 하는것입니다. 오버로딩은 같은클래스에서 매개변수,리턴값이 다르지만 같은 이름의 메소드를 정의하는 것입니다. * 오버라이딩(조상에게 받은 메서드의 구현부를 바꿈) 조건 ⓐ 선언부가 같아야 한다(이름 / 매개변수 / 리턴타입) ⓑ 접근제어자를 좁은 범위로 변경할 수 없다. ⓒ 조상클래스의 메서드보다 많은 수의 예외를 선언할 수 없다. * 오버로딩 조건 ⓐ 메서드의 이름이 같아야 한다. ⓑ 매개변수의 개수 or 타입이 달라야 한다. (리턴타입은 오버로딩 구현과 관계 없다) 오버라이딩 Overriding (영어사전 뜻 : Overide가 무효, 무시, 기각하다 즉, 가장 우선되는) 상속관계에서 부모 클래스에서 정의한 메서드를 자식 클래스에서.. 2020. 1. 12. 이전 1 2 다음 728x90