본문 바로가기
알고리즘/백준 BOJ

[BOJ/C#] 1152 단어의 개수

by 왹져박사 2023. 8. 16.
728x90

여러 배울 것들이 넘치는데 C++을 처음부터 배워나가며 알고리즘을 공부하려 하니 부담이 많이 되었다. 

그래서 다시 C#으로 알고리즘을 일단 공부하고, 벽을 만나거나 내가 어느정도 C#을 다룰 줄 안다고 생각되었을 때 C++을 배울 듯하다. 

 

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

 

1152번: 단어의 개수

첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열

www.acmicpc.net

입력된 문자열을 공백을 기준으로 나눠 string 배열로 저장하여 단어 수를 출력하는 문제이다. 

Split으로 string 배열로 저장하고, 

공백이 맨 앞과 뒤로 올 경우를 제거해준다. 

using System;
using System.Text;
using System.IO;

namespace _1152
{
    class Program
    {
        static void Main()
        {
            StreamReader sr = new StreamReader(Console.OpenStandardInput());
            StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

            string str = sr.ReadLine();
            string[] word = str.Split(' ');
            int num = word.Length;
            if (word[0] == "") num--;
            if (word[word.Length-1]=="") num--;

            sw.WriteLine(num);

            sr.Close();
            sw.Close();
        }
    }
}

앞뒤 공백 제거 부분에서 실수해서 처음에 틀렸다. if문을 따로 나누지 않고 

            if (word[0] == ""||word[word.Length-1]=="") num--;

이런 식으로 처리하여 앞과 뒤 모두 있을 경우를 고려하지 못했다. 이런 실수가 많아 정답률이 낮은 듯하다..

728x90