문제 출처: https://www.acmicpc.net/problem/25682 25682번: 체스판 다시 칠하기 2 첫째 줄에 정수 N, M, K가 주어진다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 분석 해당 문제는 누적합 관련 알고리즘을 풀면서 발견한 문제입니다. 기존의 체스판 다시 칠하기의 최적화 버전으로, 더 큰 사이즈의 보드와 줄어든 시간 제한의 차이가 있습니다. 기존 체스판 다시 칠하기는 브루트 포스(brute force) 방식으로, 8 x 8 크기의 체스판을 다시 칠하는 최소 개수를 구하는 문제였습니다. 여기에 8로 고정이었던 체스판의 크기를 k로, 시간 제한을 2초 -> 1초로, 보드의 N과 M의 최대..
Singleton Pattern 전역 변수를 사용하지 않고 object 하나만 생성하여, 어디에서든지 참조할 수 있도록 하는 패턴 하나의 instance를 생성하며, getInstance method를 통해 모든 client에게 동일한 instance를 반환해주는 작업 advantage of Singleton design pattern Object를 하나만 사용하기 때문에 memory를 절약할 수 있다 하나의 instance를 지속적으로 재사용 가능하다. 전역변수(Global Variable)의 역할을 수행한다. Multi-threaded와 database application에서 주로 사용된다. Example of Singleton Pattern Example1 더보기 // Main.java impor..
Mediator Pattern 모든 class 간의 복잡한 상호작용을 캡슐화(encapsulate)하여 하위 class에 위임하여 처리할 수 있도록 하는 패턴. Object들 사이의 복잡한 관계를 다수 대 하나의 관계로 바꿔주기 위해 Mediator(중재자) pattern을 이용한다. 관계의 복잡성을 떨어뜨려 유지 보수 및 재사용의 확장성에 유리한 패턴 Object들 사이에 관계를 통제하는 Mediator를 삽입하여 모든 object들이 복잡한 communication을 가능하게 만듭니다. 캡슐화(Encapsulate)란? 중요한 데이터를 보존, 보호하기 위해서 연관 있는 attribute와 method를 class로 묶는 작업을 말합니다. Access Modifier을 이용해서 은닉성을 유지합니다. 외..
해당 자료는 w3schools을 참조하여 작성했습니다. https://www.w3schools.com/java/java_modifiers.asp Java Modifiers W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com Modifier의 종류 Modifier는 다음과 같이 두가지 그룹으로 나눌 수 있습니다: Access Modifiers - access level을 제어합..
Adaptor Pattern 말 그대로 어댑터(Adaptor)처럼 사용되는 디자인 패턴이다. 한국에서 전자기기를 사용하기위해 220V규격을 맞춰서 사용하는데, 그대로 110V 플러그로 사용할 수 없다. 이때에 변환젠더(Adaptor)를 사용하면 110V 규격에서도 사용가능하다. 이처럼 서로 호환성이 맞질않아 interface 사이를 잇는 bridge 역할을 수행하는 패턴 여기서 잠깐! - Adapter ? Adaptor ? 둘중 무엇일까? https://englishforkorean.tistory.com/entry/Adapter-vs-Adaptor-%EB%9C%BB-%EC%B0%A8%EC%9D%B4 Adapter vs Adaptor 뜻 차이 Adapter vs Adaptor 전통적인 영어에서는 이 두 가..