없는 숫자 더하기 - 프로그래머스 Lv.1

Justin·2022년 7월 25일
0

알고리즘 풀이

목록 보기
4/7

문제 설명

입출력 예시

이번 문제는 비교적 간단하였다. 1부터9까지의 숫자 중 일부 숫자가 비거나 순서가 뒤바뀐 상태에서 없는 숫자들만 찾아 더한 값 을 구하면 된다.

문제 풀이

List를 선언하고, 비교하기 위해 1-9까지의 숫자를 담아준다.

List<int> compareNums = new List<int>();
                for (int i = 1; i < 10; i++)
                    compareNums.Add(i);

그 뒤에 이중 for 문을 통해 비교 하며 일치 하는 값이 있다면 위에서 선언한 list에서 제거해주는 방안을 사용했다.

for (int i = 0; i < numbers.Length; i++)
                {
                    for (int j = 0; j < compareNums.Count; j++)
                    {
                        if (numbers[i] == compareNums[j])
                            compareNums.Remove(compareNums[j]);
                    }
                }

그 뒤에 list에 남아있는 값을 더하면 끝이다.

for (int i = 0; i < compareNums.Count; i++)
                    answer += compareNums[i];

엄청 간단한 문제인데 복잡하게 풀어낸 것 같아 마음이 불편하다.

다른 사람들의 풀이를 보니 Linq를 사용해서 아주 간단하게 푼 케이스가 있어서 가져와봤다.

var numberArray = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            return numberArray.Except(numbers).Sum();

Except(numbers)를 통해 numberArray에 저장된 숫자를 빼고, 남은 숫자를 더하는 방식인 것 같다. Linq가 참 간단하게 풀어낼 수 있어서 좋은 것 같다.

profile
인디 게임을 만들며 공부하고 있습니다.

0개의 댓글