[백준/JAVA]1316번 그룹 단어 체커

2025. 1. 22. 13:44·코딩테스트/백준

문제

https://www.acmicpc.net/problem/1316

단어가 주어졌을 때 그 단어가 그룹 단어인지 판단하는 문제였다. 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다.

문제 풀이

현재 알파벳이랑 다음 알파벳이 같은지 확인하고, 만약 다르다면 단어에 그 알파벳이 또 있는지 확인하는 방식으로 풀었다.

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        //그룹 단어의 개수를 세기 위한 변수
        int count = 0;

        for (int i = 0; i < N; i++) {
            String s = br.readLine();
            //알파벳 소문자가 등장한 적 있는지 기록하는 배열 
            boolean[] array = new boolean[26]; 
            //그룹 단어인지 여부를 나타내는 변수
            boolean isGroupWord = true; 

            //각 단어의 문자들을 하나씩 검사 
            for (int j = 0; j < s.length(); j++) {
                //현재 문자가 이전 문자와 다르다면 
                if (j > 0 && s.charAt(j) != s.charAt(j - 1)) {
                    //현재 문자가 등장한 적 있다면 그룹 단어가 아님
                    if (array[s.charAt(j) - 'a']) {
                        isGroupWord = false;
                        break;
                    }
                }
                // 현재 문자가 등장했음을 기록
                array[s.charAt(j) - 'a'] = true;
            }
            //그룹 단어라면 count 증가 
            if (isGroupWord) {
                count++;
            }
        }
        //최종 그룹 단어의 개수 출력
        System.out.println(count); 
    }
}

이 코드는 boolean 배열을 사용하여 각 알파벳의 출현 여부를 기록한다. 하지만 매번 알파벳이 바뀔 때마다 배열을 확인해야 하므로, 성능이 떨어질 수 있다.

'코딩테스트 > 백준' 카테고리의 다른 글

[백준/JAVA]2738번 행렬 덧셈  (0) 2025.01.23
[백준/JAVA]25206번 너의 평점은  (1) 2025.01.23
[백준/JAVA]2941번 크로아티아 알파벳  (0) 2025.01.22
[백준/JAVA]1157번 단어 공부  (0) 2025.01.21
[백준/JAVA]10988번 팰린드롬인지 확인하기  (0) 2025.01.21
'코딩테스트/백준' 카테고리의 다른 글
  • [백준/JAVA]2738번 행렬 덧셈
  • [백준/JAVA]25206번 너의 평점은
  • [백준/JAVA]2941번 크로아티아 알파벳
  • [백준/JAVA]1157번 단어 공부
yxxjxxeee
yxxjxxeee
  • yxxjxxeee
    공부 일지
    yxxjxxeee
  • 전체
    오늘
    어제
    • study N
      • Framework
        • Spring
      • Language
        • JavaScript
        • C | C++
        • JAVA
        • PHP
      • CS
        • 네트워크
        • 자료구조
        • 데이터베이스
        • 운영체제
      • DBMS
        • MySQL
      • 코딩테스트 N
        • 백준 N
        • 프로그래머스
        • LeetCode
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 쇼핑몰 제작 프로젝트(PHP)
    • github
  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO Designed By 정상우
    Version v4.10.2
yxxjxxeee
[백준/JAVA]1316번 그룹 단어 체커
상단으로

티스토리툴바