본문 바로가기
코딩테스트/SWEA

[JAVA] SWEA 1213번 String

by PEKAH 2021. 7. 30.

문제

주어지는 영어 문장에서 특정한 문자열의 개수를 반환하는 프로그램을 작성하여라.


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

댓글