반응형
출처: 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 |
댓글