백준문제풀이 5단계 문자열8 1152번 단어의 개수 (C#)
2024. 5. 23. 20:00ㆍ백준 문제풀이/5단계 문자열
공백이 포함된 문자열을 받는다.
이 문자열안에는 몇개의 단어가 있는지를 구하는 문제.
중요한건 공백이다.
공백으로 시작할수도 끝날수도 있다.
공백으로 단어를 나누면 쉽게 끝날줄 알았다.
하지만 공백으로 시작하는경우와 끝나는 경우때문에 계속해서 틀렸다.
using System;
class BackJoon
{
static void Main(string[] args)
{
string[] input = Console.ReadLine().Split();
string[] newInput = Array.FindAll(input, str => str != "");
Console.WriteLine(newInput.Length);
}
}
처음으로 찾은 방법은 Array.FindAll을 이용해서 공백을 모두 지운 새로운 배열을 만드는것.
그다음 새로운 배열의 길이를 출력하면 해결이다.
하지만 이 방법은 메모리가 너무크고 시간이 너무 오래걸렸다.
난 해결만 하면 다음문제로 넘어가기는 하지만 그래도 등수가 50%안에는 들려고 노력한다.
이 방법은 상위 80%가 넘어버렸다.
그래서 다른 방법을 찾아봤다.
using System;
class BackJoon
{
static void Main(string[] args)
{
string input = Console.ReadLine().Trim();
string[] input2 = input.Split();
if(input.Length == 0)
Console.WriteLine(0);
else
Console.WriteLine(input2.Length);
}
}
두번째 방법은 Trim()을 이용한것.
Trim은 문자열의 선행 공백과 후행 공백을 지워준다.
이번문제에 아주 유용하다.
공백만 입력됬을 때를 생각하며 길이가 0일때는 그냥 0을 출력해주도록한다.
끝.
'백준 문제풀이 > 5단계 문자열' 카테고리의 다른 글
백준문제풀이 5단계 문자열10 5622번 다이얼 (C#) (0) | 2024.05.25 |
---|---|
백준문제풀이 5단계 문자열9 2908번 상수 (C#) (0) | 2024.05.24 |
백준문제풀이 5단계 문자열7 2675번 문자열 반복 (C#) (0) | 2024.05.22 |
백준문제풀이 5단계 문자열6 10809번 알파벳 찾기 (C#) (0) | 2024.05.21 |
백준문제풀이 5단계 문자열5 11720번 숫자의 합 (C#) (0) | 2024.05.20 |