반응형
문제 설명
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 해야 합니다.
연휴..와 야근을 거쳐 오랜만에 알고리즘 문제를 풀어봤다!
월간 코드 챌린지 시즌3 없는 숫자 더하기 문제
0부터 9까지의 숫자 중 일부가 들어있는 배열이 하나 주어지고, 그 안에 없는 숫자들을 더하여 사용자에게 보여주면 되는 문제이다.
문제 풀어야하는데~ 풀어야하는데~ 하며 미루고 미루다보니 처음에 감을 잡기가 어려웠다 ㅠㅠ
해답은 비교적 간단하다. 어차피 0부터 9까지의 모든 숫자의 합(45)이 주어지고 그 합에서 배열에 있는 숫자들을 모조리 빼주면 된다.
어차피 없는 숫자들의 합이 있는 숫자들을 뺀 나머지와 똑같을테니 말이다.
생각을 조금만 더 하고 문제를 풀었다면 금방 풀었겠지만 나는 역시나 삽질을 하다가 문제를 풀 수 있었다
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/015.gif)
아래는 해답!
package list;
public class Programmers_MonthlyCodeChallenge {
public static int solution(int[] numbers) {
// 결과 - 1~9까지 모두 더한 값 (0부터 9까지의 숫자 중 일부가 들어있는 배열이 매개변수로 주어지기 때문에!)
int answer = 45;
// 매개변수로 주어진 numbers 배열의 값들을 answer(45)에서 모두 빼준다.
// 값들을 모두 빼면 해당 배열에서 없는 수의 총합이 남아있기 때문에!
for (int i = 0; i < numbers.length; i++) {
answer -= numbers[i];
}
// 결과값 리턴
return answer;
}
public static void main(String[] args) {
// 파라미터 / 매개변수
int numberArr = solution(new int[]{1, 2, 3, 4, 6, 7, 8, 0});
// 결과 출력
System.out.print(numberArr);
}
}
크크 앞으로도 열심히!
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스 | Programmers] 코딩테스트 연습 문제 Level 1 Java 완주하지 못한 선수 문제풀이 (0) | 2021.10.23 |
---|---|
[Programmers] Java 프로그래머스 연습문제 약수의 합 문제 풀이 (0) | 2021.10.14 |
[Programmers] Java 프로그래머스 레벨1 하샤드 수 문제 풀이 (0) | 2021.09.23 |
[Programmers] Java 프로그래머스 레벨1 두 정수 사이의 합 해답 (0) | 2021.09.14 |
[Programmers] Java 프로그래머스 레벨1 자연수 뒤집어 배열로 만들기 해답 (0) | 2021.09.11 |