알고리즘 풀이

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

bimtaeur30 2026. 3. 14. 15:10

문제번호: 15719

문제명: 중복된 숫자

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

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

 

오늘은 중복된 숫자를 찾아내는 문제를 풀었습니다. 처음엔 배열을 생성하여 하나씩 비교하는 방식과 해시셋을 사용하여 bool을 반환받고 출력하는 방식 등을 시도해보았는데 전부 런타임 애러가 났습니다.

핵심 개념은 주어진 N을 가지고 1부터 N까지의 합을 구한 후 실제 숫자들의 합에서 빼면 중복된 숫자가 나오는 것을 이용하는 것 이었습니다.
다음은 정답코드입니다.

static void Main()
{
    StreamReader sr = new StreamReader(Console.OpenStandardInput());

    int N = int.Parse(sr.ReadLine());

    long sum = 0;
    int num = 0;
    int c;

    while ((c = sr.Read()) != -1)
    {
        if (c == ' ' || c == '\n')
        {
            sum += num;
            num = 0;
        }
        else
        {
            num = num * 10 + (c - '0');
        }
    }

    sum += num;

    long expected = (long)(N - 1) * N / 2;

    Console.WriteLine(sum - expected);
}

 

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

[C#] 백준 1655번 문제풀이  (0) 2026.03.15
[C#] 백준 9656번 문제풀이  (0) 2026.03.14
[C#] 백준 2178번 문제풀이  (0) 2026.03.12
[C#] 백준 11868번 문제풀이  (0) 2026.03.10
[C#] 백준 30088번 문제풀이  (1) 2026.03.09