문제
주어지는 영어 문장에서 특정한 문자열의 개수를 반환하는 프로그램을 작성하여라.
Starteatingwellwiththeseeighttipsforhealthyeating,whichcoverthebasicsofahealthydietandgoodnutrition.
위 문장에서 ti 를 검색하면, 답은 4이다.
제약 사항
총 10개의 테스트 케이스가 주어진다.
문장의 길이는 1000자를 넘어가지 않는다.
한 문장에서 검색하는 문자열의 길이는 최대 10을 넘지 않는다.
한 문장에서는 하나의 문자열만 검색한다.
입력
각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호가 주어지고 그 다음 줄에는 찾을 문자열, 그 다음 줄에는 검색할 문장이 주어진다.
출력
#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스의 답을 출력한다.
풀이
indexOf를 사용해 단어를 검색하고, 찾은 단어의 이후부터 문자열의 값을 짤라 다시 검색하도록 하였다
import java.util.Scanner;
public class String_swea {
static int tc;
static String findStr;
static String str;
static int answer;
static int contains;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for (int test_case = 1; test_case <= 10; test_case++) {
tc = sc.nextInt();
findStr = sc.next(); str = sc.next();
answer = 0;
while(true) {
contains = str.indexOf(findStr); // 검색 단어의 인덱스
if (contains <= 0) break; // 문자열에 단어가 없으면 break;
str = str.substring(contains + findStr.length()); // 찾은 부분 이후 문자열을 짤라서 다시 검색
answer++;
}
System.out.println("#" + tc + " " + answer);
}
}
}
'코딩테스트 > SWEA' 카테고리의 다른 글
[JAVA] SWEA 1216번 회문2 (0) | 2021.07.30 |
---|---|
[JAVA] SWEA 1215번 회문1 (0) | 2021.07.30 |
[JAVA] SWEA 1210번 Ladder1 (0) | 2021.07.27 |
[JAVA] SWEA 1220번 Magnetic (0) | 2021.07.27 |
[JAVA] SWEA 1209번 Sum (0) | 2021.07.27 |
댓글