상세 컨텐츠

본문 제목

JAVA. 백준 알고리즘 단계별 문제 7단계(문제 번호 1316)

공-부/백준 알고리즘

by 사랑짱 2021. 6. 6. 14:37

본문

(문제번호 1316)

단어 N개를 입력으로 받아 그룹단어의 개수를 출력하는 프로그램을 작성하시오.

 

 
 

문제 해결 포인트

그룹단어란 존재하는 모든 문자가 연속해서 나타나는 단어이다. 

모든 문자는 연속하며, 연속이 끝난 뒤 다시 나타나면 안된다.

 

 

문제 해결 과정

1.  BufferedReader를 통해 입력받을 단어의 개수를 입력 받은 후, count 변수에 대입한다.

2. 입력받은 단어의 개수 범위로 for문을 돌려 단어를 입력받는다.

3. charAt( )함수를 이용하여 입력받은 단어 안에 있는 문자가 연속해서 나타나는 경우를 체크한다.

4. 연속된 문자가 끝난 경우(다른 문자가 나타난 경우),

   연속된 문자가 끝난 인덱스와 해당문자의 마지막 인덱스(lastIndexOf( ))를 비교하여 체크한다.

5. 인덱스가 같으면 다음 문자 혹은 다음 단어를 체크, 다르면 count--한다.

6. 모든 단어의 체크가 끝나면 count를 출력하여 그룹단어의 개수를 나타낸다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
 
public class No10_1 {
 
    
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int count = N;
        
        for(int i = 0; i < N; i++) {
            String str = br.readLine();
            
            for(int j = 0; j < str.length()-1; j++) {
                
                if(str.charAt(j) == str.charAt(j+1)) {
                    continue;
                } 
                else {
                    if(j < str.lastIndexOf(str.charAt(j))) {
                        count--;
                        break;
                    } 
                }    //if-else
            }
            
        }    //for        
        
        System.out.println(count);
        
    }    //main
    
}    //class
cs

 

 

관련글 더보기