본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 1152 단어의 개수

by 까망 하르방 2021. 8. 27.
반응형

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

Approach

getline(cin, str);을 통해 공백을 포함한 문자열을 입력받는다.

처음과 끝이 공백이 아닌 문자가 주어지고,

단어의 개수를 세는 것이라면 공백을 기준으로 구할 수 있다.

 

해당 문제에서는 공백으로 문자열을 시작할 수도 있고

끝날 수도 있기 때문에 이에 대한 처리가 필요하다.

 

C++

#include <iostream>
#include <string>

using namespace std;

string str;
int ans;

int main() {
    // freopen("input.txt", "r", stdin);
    getline(cin, str);

    // 공백만 주어지는 경우 제외
    if (!str.empty()) 
    {
        ans = 1;
        for (int i = 0; i < str.length(); i++)
        {
            // 공백을 기준으로 단어 개수 세기
            if (str[i] == ' ')
                ans++;
        }
        // 공백으로 시작한 경우
        if (str[0] == ' ')
            ans--;

        if (str[str.length() - 1] == ' ')
            ans--;
    }

    cout << ans << endl;
}

 

Java

import java.util.Scanner;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		StringTokenizer tokens = new StringTokenizer(str, " ");
		
		int count = 0;
		while(tokens.hasMoreElements()){
			tokens.nextToken();
			count++;
		}
		
		System.out.println(count);
	}
}
반응형

'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 1292 쉽게 푸는 문제  (0) 2021.09.03
[BOJ] 백준 1157 단어 공부  (0) 2021.08.31
[BOJ] 백준 1094 막대기  (0) 2021.08.26
[BOJ] 백준 1085 직사각형에서 탈출  (0) 2021.08.25
[BOJ] 백준 1037 약수  (0) 2021.08.24

댓글