[알고리즘]/백준

자바 - 구현 - 백준 1316 그룹 단어 체커

broship 2021. 2. 28. 17:14

문제


 

 

 

 

문제해결


import java.util.Scanner;

public class B1316 {
	
	static Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		int cnt = 0;
		int n = sc.nextInt();
		
		for(int i=0;i<n;i++)
			if(check()==true)
				cnt++;
		
		System.out.println(cnt);
	}
	
	public static boolean check() {
		boolean[] check = new boolean[26];
		int prev = 0;
		String input = sc.next();
		
		for(int i=0;i<input.length();i++) {
			int now = input.charAt(i);
			
			if(prev!=now) 
				if(check[now-'a']==false) {
					check[now-'a'] = true;
					prev = now;
				} else
					return false;
			else
				continue;
		}
		return true;
	}
}

- 시간내에 못풀어서 구글링을 하였다...

 

해결방법:

1. 영문자 26 자리만큼 boolean 배열을 만든다

2. 첫번째 글자부터 하나씩 체크를 한다(boolean 배열의 글자 위치를 false로 바꾼다)

3. 만약 붙어있는 영문자는 넘어가게 한다

4. 붙어있지 않는데 같은 영문자가 나오면 false를 return 한다

5. 모든 글자를 체크했으면 true를 return한다

6. return한 true 개수를 출력한다