728x90
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
풀이)
import java.util.HashMap;
import java.util.Scanner;
public class Main_BJ_1316_그룹단어체커 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int cnt = 0;
for(int i=0; i<n; i++){
HashMap<Character, Integer> map = new HashMap<>();
String str = sc.next();
char c = str.charAt(0);
Boolean flag = true;
for(int j=1; j<str.length(); j++){
char s = str.charAt(j);
if(c == s)
map.put(s, map.getOrDefault(s, 0)+1);
else{
if(map.containsKey(s)) {
flag = false;
break;
}
else map.put(c, 1);
c = s;
}
}
if(flag)
cnt++;
}
System.out.print(cnt);
}//main
}
문자열 크기나 길이나 100밖에 안 되어서 하나하나 확인해도 괜찮다.
연속함을 저장하기 위해 hashmap을 이용했고, 존재하면 map에 넣어줬다.
만약, 앞선 친구와 다른 애가 나올때 map에 존재하는지 체크해주면 된다.
존재한다면, 그룹 단어가 아니라는 의미므로 break 걸어주기!!
728x90
'코테 > 백준' 카테고리의 다른 글
백준 2504 괄호의 값(JAVA) (1) | 2023.06.16 |
---|---|
백준 5014 스타트링크(JAVA) (0) | 2023.06.15 |
백준 1713 후보 추천하기(JAVA) (0) | 2023.06.05 |
백준 7562 나이트의 이동(JAVA) (0) | 2023.06.04 |
백준 1912 연속합(JAVA) (0) | 2023.06.03 |