Business logic/백준

[1543번] 문서검색

시뻘건 튼튼발자 2020. 4. 19. 21:45
반응형

문제 기출 : [https://www.acmicpc.net/problem/1543]

 

 

풀이 방법

[그리디알고리즘] 접근

 

내가 문제를 잘못 이해 했는지 두 시간 가량을 잘못된 방향으로 풀이되어서 상당히 시간낭비하였다.

문제를 읽어보면 "찾는 단어가 최대 몇 번 중복되지 않게 등장하는지?"이다. 주어진 조건 "몇 번부터든지 시작 index는 모두 가능"을 생각하여 나는 코드를 작성하였지만 전부 다 실패...

아무리 문제를 되새김질해도 난 모르겠다...

그래서 다른 블로그를 참고하였더니 문제 이해를 도와주었다...ㅠㅠ

 

주어진 문자열에서 찾을 문자열을 찾되, 중복되지 않게 등장하는 최대값을 구해야한다.

즉 주어진 문자열에서 찾을 문자열을 찾고 찾은 문자열을 빼버리면서 카운트 하면 되는 아주 간단한 문제였다..

 

나의 두 시간을 돌리도...ㅠㅠ

 

문제 풀이

public class Main {
	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int answer = 0;

		try {
			String inputString = br.readLine();
			String searchString = br.readLine();

			while(inputString.indexOf(searchString) > -1) {
				inputString = inputString.substring(inputString.indexOf(searchString) + searchString.length(), inputString.length());
				answer++;
			}
			
			System.out.println(answer);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
반응형