본문 바로가기
Algorithm/Beakjoon

[Java] baekjoon 1152 : 단어의 개수 / 문자열

by Amy97 2021. 7. 21.
728x90

문제 


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

 

1152번: 단어의 개수

첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한

www.acmicpc.net

해결 


단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 

→ 단어의 개수 = 단어 사이의 공백 수 + 1

 

또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.

  자바 trim() 메서드를 이용해 공백을 제거

 

구현 


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
import java.util.*;
 
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
 
        String str = sc.nextLine().trim(); // 문자열 앞뒤 공백 제거
 
        int cnt = 0
        int word_cnt = 0;
 
        for (int i = 0; i < str.length(); i++) { // 앞뒤 공백 제거한 문자열의 길이만큼 실행
            if (str != null && str.charAt(0!= ' ') { // 단어의 개수가 0인 경우 제외
                if (str.charAt(i) == ' ')
                    cnt++// 단어 사이의 공백 수 세기
                else if (str != null && str.charAt(i) != ' '
                    word_cnt = 1;  // 입력된 문자열이 있고 공백이 없으면 단어의 개수는 하나
            }
        }
        if (cnt > 0// 단어 사이의 공백이 존재할 경우, 단어의 개수는 여러 개 
            word_cnt = cnt + 1// 단어의 개수 = 단어 사이의 공백 수 + 1
        System.out.println(word_cnt);
 
    }
}
 
cs

 

결과 


728x90

댓글