알고리즘 풀이

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

bimtaeur30 2026. 1. 28. 17:55

문제번호: 수들의 합 5

문제명: 2018번 문제풀이

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

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

 

오늘은 오름차순의 연속되는 수들의 합으로 N을 만들 수 있는 가짓수를 구하는 문제를 풀어보았습니다. 이중반복문을 이용해서 모든 경우의 수를 다 순회하며 찾았습니다 시간복잡도가 O(N^2)이라서 비효율적인 방식이지만 제한시간이 2초임을 고려했을때 충분히 통과할 수 있었습니다. 다음은 정답코드입니다.

 

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

    int n = int.Parse(sr.ReadLine());
    int answer = 0;
    for (int i = 1; i <= n; i++)
    {
        int addNum = 0;
        for (int j = i; j <= n; j++)
        {
            addNum += j;
            if (addNum == n)
            {
                answer++;
                break;
            }
            else if (addNum > n)
            {
                break;
            }
        }
    }

    sw.WriteLine(answer);

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

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

[C#] 백준 17478번 문제풀이  (3) 2026.01.30
[C#] 백준 1543번 문제풀이  (0) 2026.01.29
[C#] 백준 10867번 문제풀이  (0) 2026.01.27
[C#] 백준 35143번 문제풀이  (0) 2026.01.26
[C#] 백준 1417번 문제풀이  (0) 2026.01.25