문제
문제해결
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 개수를 출력한다
'[알고리즘] > 백준' 카테고리의 다른 글
자바 - 구현 - 백준 11721 열 개씩 끊어 출력하기 (0) | 2021.03.02 |
---|---|
자바 - 구현 - 백준 14696 딱지놀이 (0) | 2021.03.01 |
자바 그리디 - 백준 2217 로프 (0) | 2021.02.27 |
자바 그리디 - 백준 1541 잃어버린 괄호 (0) | 2021.02.26 |
자바 그리디 - 백준 16435 스네이크 버드 (0) | 2021.02.25 |