[Coding test] 0324_no.1 (java)

2020-03-24

Coding test / 0324_no.1

문제설명

유출 x

풀이

package T0324;

import java.util.*;

public class t1 {
	
	static public int solution(String s, String pattern) {
		int answer = 0;
		
		int ch[] = new int[32];
		
		for(int i=0; i<pattern.length(); i++)
			ch[pattern.charAt(i)-'a']++; //0-a, 1-b, 2-c, 3-d
		
		for(int i=0; i<=s.length()-pattern.length(); i++) {
			String ss = s.substring(i, i+pattern.length());
			System.out.println(ss);
			int test[] = new int[32];
			
			for(int j=0; j<ss.length(); j++) {
				test[ss.charAt(j)-'a']++;
			}
			
			boolean ck = false;
			for(int k=0; k<32; k++) {
				if(ch[k] != test[k])
					ck = true;
			}
			
			if(ck == false)
				answer++;
			
		}
		
		return answer;
	}
	
	public static void main(String[] args) {
		
		System.out.println(solution("aaaaaa", "a"));
	}
}

후기 (1h -> 15min)

pattern의 len만큼 자르는 것 까지는 잘 했는데 왜… 그 뒤에 정신을 못차리고 pattern의 모든 순서를 다 따지느라 한시간을 잡아먹었다….

이 문제의 포인트는 순서는 중요하지않고 각 char에 해당하는 문자가 몇개인지만 기억해놓고 그것과 같으면 정답에 추가하는 방식인데… 깨달은 후에 문제는 어렵지 않게 풀었지만,

중요한건 문제를 시간안에! 당황하지 말고! 풀어야 한다는 것이다… 왜 이런 짓을 했는지는 의moon..