전체 글

전체 글

    [Algorithm] 완전 탐색 - 중복순열

    [Algorithm] 완전 탐색 - 중복순열

    류호석님의 패스트캠퍼스 강의 자료를 참고하여 정리한 글입니다. 출처 : https://github.com/rhs0266/FastCampus 완전 탐색 문제 해결을 위해 모든 경우를 전부 탐색하는 방법으로 정답을 무조건 구할 수 있다. 장점 : 부분 점수를 얻기 좋음 단점 : 모든 경우의 수를 전부 탐색하기에 시간 복잡도가 높음 완점 탐색 종류 N개중 중복을 허용하여 M개를 순서 있게 나열하기 : 중복순열 N개중 중복없이 M개를 순서 있게 나열하기 : 순열 N개중 중복을 허용하여 M개를 고르기 : 중복조합 N개중 중복없이 M개를 고르기 : 조합 완전 탐색 문제 접근 시 고를 수 있는 값의 종류 파악 중복 여부 순서를 따지는 지 N개중 중복을 허용하여 M개를 순서 있게 나열하기 : 중복순열 백준 15651)..

    객체 지향의 사실과 오해 - 역할, 책임, 협력

    객체 지향의 사실과 오해 - 역할, 책임, 협력

    출처 : 객체지향의 사실과 오해 조영호 저 | 위키북스 협력 협력은 한 객체가 다른 객체에게 도움을 요청할 때 시작된다. 이상한 나라의 재판 누군가 왕에게 재판을 요청함으로써 재판 시작 왕이 토끼에게 증인을 부를 것을 요청 왕의 요청을 받은 토끼는 모자 장수에게 증인석 입장을 요청 모자 장수는 증인석에 입장하여 토끼의 요청에 응답 모자 장수의 입장은 왕이 토끼에게 요청했던 증인 호출에 대한 응답이기도 함 왕은 모자 장수에게 증언할 것을 요청 모자 장수는 증언하여 왕의 요청에 응답 객체들이 특정한 요청을 받아들일 수 있는 이유는 그 요청에 대해 응답하는데 필요한 지식과 행동 방식을 가지고 있기 때문이다. 요청과 응답은 협력에 참여하는 객체가 수행할 책임을 정의함 책임 어떤 객체가 어떤 요청에 응답할 수 있..

    객체 지향의 사실과 오해 - 타입과 추상화

    객체 지향의 사실과 오해 - 타입과 추상화

    출처 : 객체지향의 사실과 오해 조영호 저 | 위키북스 추상화를 통한 복잡성 극복 현재의 지하철 노선도는 불필요한 지형 정보를 제거하고 역 사이의 연결성을 강조함으로써 승객들의 목적에 맞게 현실을 단순화함 -> 추상화 추상화란 현실에서 출발하되 불필요한 부분을 도려내가면서 사물의 본질을 드러나게 하여 복잡도를 극복하는 과정 초기의 지하철 노선도 추상화이지만 지하철을 이용하는 승객들의 역과 역 사이의 연결관계를 알려는 목적에는 적합지 않았기 때문에 외면 추상화 공통점은 취하고 차이점은 버리는 일반화를 통해 단순화 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거하여 단순화 객체 지향과 추상화 이상한 나라의 왕, 왕비, 하트 잭, 신하 등 다양한 객체들을 계급, 나이, 성격 등의 차이점은 무시한 채 트..

    객체 지향의 사실과 오해 - 이상한 나라의 객체

    객체 지향의 사실과 오해 - 이상한 나라의 객체

    출처 : 객체지향의 사실과 오해 조영호 저 | 위키북스 객체 지향과 인지 능력 객체 지향을 직관적이고 이해하기 쉬운 패러다임이라고 말하는 이유는 객체 지향이 세상을 자율적이고 독립적인 객체들로 분해할 수 있는 인간의 기본적인 인지 능력에 기반을 두고 있기 때문이다. 인간이 인지할 수 있는 다양한 객체들이 모여 현실 세계를 이루는 것처럼 소프트웨어의 세계 역시 인간이 인지할 수 있는 다양한 소프트웨어 객체들이 모여 이뤄져 있다. but, 객체 지향 패러다임의 목적은 현실 세계를 모방하는 것이 아닌 현실 세계를 기반으로 새로운 세계를 창조하는 것 객체, 이상한 나라 이상한 나라의 앨리스는 문을 통과하기에 적당한 상태로 자신의 키를 조절 -> 상태를 가지며 상태는 변경 가능 특정 시점의 앨리스의 상태 = 특정..

    객체 지향의 사실과 오해 - 협력하는 객체들의 공동체

    객체 지향의 사실과 오해 - 협력하는 객체들의 공동체

    출처 : 객체지향의 사실과 오해 조영호 저 | 위키북스 객체지향에서 가장 중요한 개념 3가지 역할 책임 협력 요청과 응답으로 구성된 협력 다형성의 실세계 비유 사실 실세계와 객체 지향 사이는 먼 거리가 있다. 그래도 실세계의 비유로 객체지향을 이해하기에는 좋다. 다음의 커피 주문을 비유로 객체지향을 이해해보자 커피 주문이라는 협력은 손님이 커피를 주문하면서 시작된다 -> 커피 주문 요청 주문을 받은 캐시어는 주문 내역이 기록된 컵을 전달 -> 커피 제조 요청 바리스타는 커피를 제조한 후 완료됐음을 캐시어에게 알린다 -> 커피 완성 응답 캐시어는 손님에게 커피가 준비됐음을 알린다. -> 커피 완성 응답 역할과 책임 : 협력이 원활하게 진행되는 데 필요한 핵심적인 구성 요소 협력하는 과정 속에서 특정한 역할..

    [Java] ArrayList와 List의 차이

    [Java] ArrayList와 List의 차이

    ArrayList와 List의 차이 Arraylist Resizable-array implementation of the List interface. Implements all optional list operations, and permits all elements, including null. In addition to implementing the List interface, this class provides methods to manipulate the size of the array that is used internally to store the list. List An ordered collection (also known as a sequence). The user of this inte..