본문 바로가기
프로그래머스 코딩테스트 문제/Level 1

[프로그래머스] - 없는 숫자 더하기(C#)

by jyppro 2023. 7. 31.

없는 숫자 더하기

이번엔 "없는 숫자 더하기" 문제를 다뤄보겠습니다. 해당 문제는 월간 코드 챌린지 시즌3에 출제되었던 문제입니다.

 

문제 설명

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

 

제한 사항

  • 1 ≤ numbers의 길이 ≤ 9
  • 0 ≤ numbers의 모든 원소 ≤ 9
  • numbers의 모든 원소는 서로 다릅니다.

 

입출력 예

numbers result
[1, 2, 3, 4, 6, 7, 8, 0] 14
[5, 8, 4, 0, 6, 7, 9] 6

 

입출력 예 설명

입출력 예 #1
5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.


입출력 예 #2
1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.

 

시작 코드

using System;

public class Solution {
    public int solution(int[] numbers) {
        int answer = -1;
        return answer;
    }
}

 

나의 풀이

using System;
using System.Linq;
public class Solution
{
    public int solution(int[] numbers) 
    {       
        int answer = 0;
        for(int i=0;i<10;i++) { answer +=i; }
        answer -= numbers.Sum();
        return answer;
    }
}

코드부터 살펴보겠습니다. int형 배열 numbers가 주어지며 시작됩니다. for문으로 0~10까지 i 값을 answer에 전부 더해줍니다. 그리고 numbers.Sum()을 통해 배열의 합을 구해주고 answer에서 그 값을 빼줍니다. 마지막으로 answer를 리턴해줍니다.

 

이번에는 간단히 해결할 수 있는 문제였습니다. 문제에서 요구하는 것은 numbers 배열에 존재하지 않는 0~9사이 수끼리 더한 값을 구하는 것이니 0~9사이의 모든 수를 더한다음, numbers배열의 합을 빼주면 되는 것입니다. Sum()은 합을 구할 때 사용하는 메서드입니다.

 

<NEXT>

오늘은 월간 코드 챌린지 시즌3 출제문제 중 하나인 "없는 숫자 더하기" 문제를 풀어보았습니다. 다음에는 "제일 작은 수 제거하기" 문제를 다뤄보도록 하겠습니다. 감사합니다.