Dev Hyeri

◖코딩 테스트◗▬▬▬▬▬▬▬▬▬/백준

[백준] 1152 단어의 개수 (설명/코드/정답)

_hyeri 2024. 6. 18. 23:24

 

문제 링크 : https://www.acmicpc.net/problem/1152

 

 

 

1. 요구 사항 이해

시간, 메모리 제한 : 2초 / 128MB

영어 대소문자와 공백으로 이루어진 문자열 ( 문자열의 길이는 1,000,000을 넘지 않는다 )

문자열을 구성하는 단어의 개수를 세는 프로그램

중복은 염두하지 않는다.

 

 

 

 

2. 설계/검증 


함수화

// 입력을 위한 객체 생성
Scanner scan = new Scanner(System.in)

String S = scna.nextLine();
문자열 S 길이 유효성 검사

S 내부에 " " 빈칸이 몇개인지 세고 +1 
출력

 

 

 

3. 정상 코드

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        // 입력을 위한 객체 생성
        Scanner scan = new Scanner(System.in);

        //문자 입력 받음
        String S = scan.nextLine();
        if (S.length() > 1000000) {
            System.out.println("문자열의 길이는 1,000,000을 넘지 않는다.");
            return;
        }

        // 문자열 양 끝 공백 제거
        S = S.trim();

        // 입력된 문자열이 공백인 경우
        if (S.isEmpty()) {
            System.out.println(0);
        } else {
            int cnt = 0;
            for (int i = 0; i < S.length(); i++) {
                 if (S.charAt(i) == ' ') {
                    cnt++;
                }
            }
            System.out.println(cnt + 1);
        }
        scan.close();
    }
}