728x90
문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 원소 ≤ 9
- numbers의 모든 원소는 서로 다릅니다.
입출력 예

입출력 예 #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 = 0;
int data= 0;
for(int i = 0; i <= 9;i++){
answer += i;
}
foreach(int number in numbers){
data += number;
}
answer = answer - data;
return answer;
}
}
: 0~9 중에 numbers에 없는 수를 골라내 더해주는 것이 아닌,
0~9까지 더해준 것에서 numbers의 모든 배열을 더한 것을 빼주는 방식으로 해결했다.
for문을 돌려 0~9까지 더해주고, foreach문을 돌려 numbers 안의 모든 수를 더해줬다.
그 후에 그 둘을 뺀 값을 반환하면 끝!
다른 사람 풀이)
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
public int solution(int[] numbers) {
var numberArray = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
return numberArray.Except(numbers).Sum();
}
}
: Linq 메서드 중 Except() 함수를 사용하여 두 배열의 차집합을 구한 후 Sum() 함수를 이용해 더해주었다.
Except( ) : 두 집합의 차집합 반환 // number1.Except(number2) = number1에서 number2에 포함한 것을 제외한 값
Sum( ) : 데이터 집합에서 숫자 타입의 집계 반환
'공부 > 코딩테스트' 카테고리의 다른 글
프로그래머스/C# - 나누어 떨어지는 숫자 배열 (0) | 2024.06.10 |
---|---|
프로그래머스/C# - 콜라츠 추측 (0) | 2024.06.10 |
프로그래머스/C# - 음양 더하기 (0) | 2024.06.07 |
프로그래머스/C# - 서울에서 김서방 찾기 (0) | 2024.06.04 |
프로그래머스/C# - 두 정수 사이의 합 (0) | 2024.06.04 |