알고리즘 풀이

[C#] 백준 1543번 문제풀이

bimtaeur30 2026. 1. 29. 18:09

문제번호: 1543

문제명: 문서검색

문제링크: https://www.acmicpc.net/problem/1543

문제내용과 예제 입/출력은 위 문제 링크에서 확인해 주시기 바랍니다.

 

안녕하세요. 오늘은 브루트포스 알고리즘을 풀어보았습니다. 흔히 무식한 알고리즘이라고 불리는데, 덕에 간단하게 풀 수 있었던 문제였습니다. 해당 문제는 문자열에서 중복되지 않은 단어가 포함된 개수를 구하는 문제입니다. While문으로 순회하면서 if문으로 i를 기점으로 자른 단어가 입력으로 받은 단어와 일치한다면 카운트를 올리고, i를 단어의 끝 인덱스로 올려줍니다. 아니라면 i++를 해줍니다. 다음은 정답코드입니다.

 

public static void Main()
{
    using var sr = new StreamReader(Console.OpenStandardInput());
    using var sw = new StreamWriter(Console.OpenStandardOutput());

    string str = sr.ReadLine();
    string word = sr.ReadLine();

    int startIndex = 0;
    int answer = 0;

    while (startIndex <= str.Length - word.Length)
    {
        if (str.Substring(startIndex, word.Length) == word)
        {
            startIndex = startIndex + word.Length;
            answer++;
        }
        else
            startIndex++;
    }

    sw.WriteLine(answer);

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

 

'알고리즘 풀이' 카테고리의 다른 글

[C#] 백준 13909번 문제풀이  (0) 2026.01.31
[C#] 백준 17478번 문제풀이  (3) 2026.01.30
[C#] 백준 2018번 문제풀이  (0) 2026.01.28
[C#] 백준 10867번 문제풀이  (0) 2026.01.27
[C#] 백준 35143번 문제풀이  (0) 2026.01.26