반응형
백준 단계별로 풀어보기 7단계 6번문제
문제의 핵심
단어의 개수를 세는 가장 간단한 방법을 떠올리기
이 문제는 정답률이 29%밖에 안되는 문제인데
개인적으로는 이게 많이 틀릴정도로 어려운 문제는 아니라고 생각했어서 좀 의외였다.
단어의 개수를 세는 방법은 여러가지가 있는데
이 문제의 특성상 그냥 띄어쓰기가 몇개인지 센다음에 +1을 해서 출력하는게 가장 쉬운 방법이다.
그리고 문제에서는 문장 앞이나 뒤에 공백이 등장할 수 있다고 했으니,
Trim()을 사용해서 앞뒤 공백을 제거하는 노하우가 조금 필요하다.
이러면 이제 for문 돌려서 띄어쓰기에 해당하는 공백이 몇개 있는지 확인한 다음에
거기에 + 1을 해주면 문장에 등장한 총 단어의 숫자를 파악할 수 있다.
단어를 세려고하지말고 단어가 아닌 것을 세서 단어의 개수를 유추하는 방식으로 접근해야했다.
정답 코드
using System;
class 단어의개수
{
static void Main()
{
// 정답 출력을 위한 변수 생성.
int answer = 0;
// 입력된 문자의 앞뒤에 공백이 있을 수 있으니 공백을 제거한다.
string s = Console.ReadLine().Trim();
// 입력된 문자열을 하나씩 확인한다.
for (int i = 0; i < s.Length; i++)
{
// 만약 공백이 존재한다면 => 띄어쓰기라는 것 => 단어와 단어의 구분 발생
if (s[i] == ' ')
{
answer++;
}
}
// 만약 입력된 문자가 없다면 0을 출력
if (s.Length == 0)
Console.WriteLine(0);
else
// 입력된 문자가 존재했다면, answer에 +1을 더해준다.
// '띄어쓰기 개수 + 1' = '단어의 개수'이므로.
Console.WriteLine(answer+1);
}
}
반응형
'C# > C# : Baekjoon' 카테고리의 다른 글
[백준] C# : 다이얼(5622번) (0) | 2021.11.10 |
---|---|
[백준] C# : 상수(2908번) (0) | 2021.11.09 |
[백준] C# : 단어 공부(1157번) (0) | 2021.11.07 |
[백준] C# : 문자열 반복(2675번) (0) | 2021.11.06 |
[백준] C# : 알파벳 찾기 (10809번) (0) | 2021.08.05 |
댓글