[백준] n.1152 - 문자열 속 단어 개수 세기 (공백 유의)

    SMALL

    1. 문제
    https://www.acmicpc.net/problem/1152

     

    1152번: 단어의 개수

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

    www.acmicpc.net

     

    2. 주요 개념
    - 스캐너, nextLine()

    - trim(), split()

    - isBlank()

    - arr.length



    3. 나의 풀이 (*은 잘 안풀린 부분)

    import java.io.*;
    import java.util.*;
    
    public class Main {
    
      public static void main(String[] args) {
    
        Scanner s = new Scanner(System.in);
    
        String str = s.nextLine();
        // 문자열 입력 
        // * nextLine으로 받아야 함!
    
        String no_blank_str = str.trim();
        // * 문자열 앞뒤 공백 제거!
        
        String[] arr = no_blank_str.split(" ");
        // * split된 단어들은 "String 배열"에 저장됨
    
        int result; // 최종 단어 갯수
    
        // * 공백 하나만 포함된 문자열 ex. " " > 답이 0이 되어야 함.
        if (no_blank_str.isBlank()) {
         result = 0;
        // * isBlank > 공백 여부 확인
        }
        else {
          result = arr.length;
        }
    
        System.out.println(result);
    
     }
    
    }



    4. 짚고 넘어가기!

    - nextLine을 이용하여 문자열 받기 (개행 문자로 구별되기에)

    - trim() > 문자열 앞/뒤 공백 제거 (문자열 중간 공백은 제거 X)

    - split() > 문자열 중간 공백 제거를 위해 사용 > 문자열 배열에 저장

    - isBlank() > 대상의 공백 여부를 판단 > " " 입력값에 대한 판단을 위해 사용

    728x90

    댓글