-
1543 문서 검색백준/그리디 알고리즘 2021. 10. 18. 19:46
https://www.acmicpc.net/problem/1543
1543번: 문서 검색
세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한
www.acmicpc.net
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String A = br.readLine(); String B = br.readLine(); int count =0; for(int i=0; i<=A.length()-B.length();i++) { String C =A.substring(i,i+B.length()); if(C.equals(B)) { count ++; i+=B.length()-1; } } System.out.println(count); } }
특별한 게 있는지 알았는데 없었고,
그냥, 입력받은 String A 의 첫번째 글자부터 String B의 글자가 있는지 확인해서,
있으면, i를 B길이만큼 증가시켜서 그 다음부터 또 B글자가 있는지 확인
없으면, i를 다음으로 1증가시켜서 거기서부터 또 글자 B가 있는지 확인
A.substring(a,b)
String A의 a위치부터 b-1 위치까지의 문자열을 가지고 옴
C.equals(B)
String C랑 String B의 문자열이 같은지 확인
그리고 for문은 A길이 - B 길이만큼 해야 함
입력에서 주어진 예로 설명하면
A길이 - B 길이 = 6
i=0
ababababa
aba
i=1
ababababa
aba
i=2
ababababa
aba
i=3
ababababa
aba
i=4
ababababa
aba
i=5
ababababa
aba
i=6
ababababa
aba
'백준 > 그리디 알고리즘' 카테고리의 다른 글
10162 전자레인지 (0) 2021.10.18 2309 일곱 난쟁이 * (0) 2021.10.18 1449 수리공 항승 (0) 2021.10.18 1789 수들의 합 (0) 2021.10.18 1213 팰린드롬 만들기 (0) 2021.10.18