본문 바로가기
Algorithm

[백준_실패]

by 옥돔이와 연근이 2022. 10. 2.
728x90
반응형

문제를 너무 쉽게 생각했더니 시간초과

범위를 보니 무식하게 풀면 안되겠음 -> 순열도 안될듯

좀 더 생각해보자

package 백준;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main_1593 {
	public static void main(String[] args) throws IOException {

		// W: cAda
		// g: 4
		// S:AbrAcadAbRa
		// gS: 11

		// Acad
		// cadA

		// 다른 방법을 생각해야함

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int wSize = Integer.parseInt(st.nextToken());
		int sSize = Integer.parseInt(st.nextToken());
		int cnt = 0;
		String w = br.readLine();
		char[] wC = w.toCharArray();
		String s = br.readLine();
		char[] sC = s.toCharArray();
		char[] tmp = new char[w.length()];

		// 문자열 정렬
		Arrays.sort(wC);
		int i = 0;
		int j = 0;

		while (j < sC.length) {
			int k = 0;
			for (j = i; j < i + wC.length; j++) {
				tmp[k] = sC[j];
				k++;
			}
			Arrays.sort(tmp);
			if (Arrays.equals(tmp, wC)) {
				cnt += 1;
			}
			i += 1;
		}
		System.out.println(cnt);
	}
}

 

 

💡 두 배열의 내용이 같은지 비교

if (Arrays.equals(tmp1, tmp2))
728x90