본문 바로가기

전체 글

(229)
문자열 검색 전체 알고리즘 package main; import java.util.ArrayList; import java.util.Arrays; /** * 짚더미 문자열(H)와 바늘문자열(N)이 주어졌을 때, * H에 N이 몇번째 자리에서 속하는지 알아내기 * @param args */ public class Main { public static void main(String[] args) { String H = "avava"; String N = "ava"; //ArrayList result = searchNaive(H, N); ArrayList result = kmpSearch(H, N); for(Integer begin : result) { System.out.println("begin : " + begin); } //Ar..
[자바] Chain of Responsibility 패턴 다수의 객체를 사슬(chain)처럼 연결해두고, 그 객체의 사슬을 차례로 돌아다니며 목적한 객체를 결정하는 방법을 생각할 수 있다. 이를 Chain of Responsibility 패턴이라 한다. 예제는 '트러블이 발생해서 누군가 처리해야하는 상황'이다. package chainofresponsibility; /** * 발생한 트러블을 표현하는 클래스 * @author dev-jones * */ public class Trouble { private int number;// 발생한 트러블 번호 public Trouble(int number) { this.number = number; } public int getNumber() { return number; } @Override public String ..
[자바] Template Method 패턴 package templateomethod; public abstract class AbstractDisplay { public abstract void open(); public abstract void print(); public abstract void close(); public final void display() { open(); for (int i = 0; i < 5; i++) { print(); } close(); } } package templateomethod; public class CharDisplay extends AbstractDisplay { private char ch; public CharDisplay(char ch) { this.ch = ch; } @Override pub..