<https://www.acmicpc.net/problem/1152>
< 단어의 개수 >
이 문제는 C++의 cin과 string을 이용하면 보다 간결하고 짧은 코드로 풀 수 있는 문제이다.
맨 앞과 마지막에도 공백이 들어오므로 단어의 개수를 셀 때 띄어쓰기를 이용하는 방법으로 문제를 푼다면
맨 앞과 마지막의 공백은 고려하지 않도록 하여 문제를 풀어야 한다.
C++의 표준 입력 함수인 cin은 표준 입력 버퍼에서 개행 문자를 제외한 값을 가져온다.
이 말은 space(띄어쓰기)를 기준으로 각 단어를 끊어서 입력을 받아오는 것이다.
아래와 같이 코딩을 한다면
string s;
while(cin >> s)
{
cout << s << '\n';
}
ABC DEF GHI 라고 입력했을 때 결과는 아래와 같다.
ABC
DEF
GHI
즉 문장을 입력했을 때 각각의 단어들을 따로따로 입력받아오는 것이므로 간단하게 단어의 개수를 구할 수 있다.
#include <iostream> #include <string> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int cnt = 0; string s; while (cin >> s) { cnt++; } cout << cnt << '\n'; return 0; }
'알고리즘 > 백준 문제풀기' 카테고리의 다른 글
BOJ 백준 크로아티아 알파벳 <문자열 처리> (0) | 2019.01.02 |
---|---|
BOJ 백준 1475 방 번호 <문자열 처리> (0) | 2019.01.02 |
BOJ 백준 5719 거의 최단경로 <다익스트라> (0) | 2018.12.31 |
BOJ 백준 1932 정수 삼각형 <DP> (0) | 2018.12.28 |
BOJ 백준 2589 보물섬 <BFS> (0) | 2018.12.27 |