반응형

코딩하기/Java 2

KMP 알고리즘(java) : 같은 문자열 몇개일까?

같은 문자열 찾기 알고리즘 ABABCBABABC 에서 ABAB가 몇번 나오는가? 일단 답은 ABABCBABABC로 2개 1번으로 단순하게는 ABABAB에서 한스텝씩 for루프를 돌려서 주어진 pattern과 일치하는지 비교할수 있다 단순 방식 ABABCB....에서 순차적으로 ABAB를 하나씩 비교해서 맞으면 count를 하나 올림, 그 다음으로 한칸 옮겨서 BABCB...에서 다시 비교하고 넘어가는 방식임 당연히 정답은 아님 해답은 KMP알고리즘을 통해 얻어와야 함(만든사람이 Knuth, Morris, Prett라서 앞글자 따서 이름지음) KMP의 요점은 주어진 패턴에서 스킵할수 있는 정보가 있는지를 파악하고 이를 이용하여 비교 횟수를 최소한으로 하는것 가령 비교할 문자인 ABAB 에서 어떤 정보가 있..

코딩하기/Java 2021.04.13

[JAVA] Queue 인터페이스로 FIFO 구현하기

Queue 인터페이스 public interface Queue extends Collection { boolean add(E var1); boolean offer(E var1); E remove(); E poll(); E element(); E peek(); } 위에 api중 data를 추가할 때 offer 메서드를 사용하고 가장 먼저 추가된 data를 꺼낼 때는 poll 메서드를 사용 import java.util.LinkedList; import java.util.Queue; Queue mTestQueue = null; if (mTestQueue == null) { mTestQueue = new LinkedList(); } mTestQueue.offer(lasttData); //Queue 뒤쪽에 da..

코딩하기/Java 2019.09.01
반응형