Java/코딩테스트(baekjoon)

[baekjoon][Java] 1316번 - 그룹 단어 체커

s.a 2022. 7. 13. 18:45
반응형

문제

 

 

제출답안 (2022.07.13)

import java.util.*;

public class Main {

    public static void main(String[] args)
    {
        List<String> list = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int result = 0;

        for(int i = 0; i < num ; i++) {
            list.add(sc.next());
        }


        for(int i = 0; i < num; i ++) {
        	if(countGroupWord(list.get(i))) {
        		result++;
        	}
        }
        sc.close();

        System.out.println(result);
    }

	public static boolean countGroupWord(String str) {

		String beforeWord = "";
		Map<String, Integer> map = new HashMap<>();

		for(int j = 0 ; j < str.length(); j ++) {
			String s = str.substring(j, j+1);
			if(j==0) {
				beforeWord = s;
				map.put(s , 1);
			}else {
				// 이전 문자랑 달라진 순간 이미 map에 있으면 그룹단어 아님
				if(!s.equals(beforeWord)) {
					if(map.containsKey(s)) {
						return false;
					}
				}
				beforeWord = s;
				map.put(s, map.getOrDefault(s, 0)+1);
			}
		}

		return true;
	}

}

 

 

채점결과 (2022.07.13)