알고리즘 풀이

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

bimtaeur30 2026. 1. 16. 22:23

문제번호: 1789

문제명: 수들의 합

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

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

 

오늘은 그리디 알고리즘 문제를 풀어보았습니다. 그리디 알고리즘이라 함은, 상남자 알고리즘이라고도 할 수 있죠.

현재의 최적의 수만을 생각해 미래를 생각하는 것 따위 뒷전에도 없는 답을 찾아가는 알고리즘입니다. 구현하기도 간편해서 매우 풀기 쉬웠습니다. 다음은 정답코드입니다.

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

    long number = long.Parse(sw.ReadLine());
    long curNum = 1; //1을 빼는것으로 시작
    while (number >= 0)
    {
        if (number - curNum >= 0)
            number -= curNum;
        else
        {
            break;
        }

        curNum++;
    }

    sw.WriteLine(curNum - 1);

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

 

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

[C#] 백준 14425번 문제풀이  (0) 2026.01.18
[C#] 백준 18258번 문제풀이  (0) 2026.01.17
[C#] 백준 24313번 문제풀이  (0) 2026.01.15
[C#] 백준 1475번 문제풀이  (0) 2026.01.14
[C#] 백준 25206번 문제풀이  (0) 2026.01.13