✔ 없는 숫자 더하기
문제 분석하기
0부터 9까지 들어갈 수 있는 정수 배열을 생성한 후,
numbers 하나씩 저장한 후에 여전히 정수 배열의 값이 0이라면 인덱스를 더하여 반환하도록 함
손으로 풀어보기
- 0부터 9까지 들어갈 수 있는 정수 배열 생성
- 정수 배열에 숫자 저장
- 정수 배열이 0인 인덱스끼리 합산
- 합산 결과를 반환
슈도코드 작성하기
numbers(0부터 9까지의 숫자 중 일부가 들어있는 정수 배열)
answer(찾을 수 없는 0부터 9까지의 숫자의 합)
arr(0부터 9까지의 정수의 개수를 담는 정수 배열)
for(i -> numbers의 크기만큼) {
arr[numbers[i]]++;
}
for(i -> arr의 크기만큼) {
if(arr[i] == 0)
answer += i
}
answer 반환
코드 구현하기
/**
* 86051) 없는_숫자_더하기
*/
public class L052_86051 {
// numbers(0부터 9까지의 숫자 중 일부가 들어있는 정수 배열)
public int solution(int[] numbers) {
// answer(찾을 수 없는 0부터 9까지의 숫자의 합)
int answer = 0;
// arr(0부터 9까지의 정수의 개수를 담는 정수 배열)
int[] arr = new int[10];
// 정수 배열에 숫자 저장
for (int i = 0; i < numbers.length; i++) {
arr[numbers[i]]++;
}
// 정수 배열이 0인 인덱스끼리 합산
for (int i = 0; i < arr.length; i++) {
if (arr[i] == 0)
answer += i;
}
// answer 반환
return answer;
}
// 테스트 케이스
public static void main(String[] args) {
L052_86051 solution = new L052_86051();
int[] numbers = { 1, 2, 3, 4, 6, 7, 8, 0 };
int result = solution.solution(numbers);
System.out.println(result);
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[81301] 숫자 문자열과 영단어 (0) | 2023.12.19 |
---|---|
[82612] 부족한 금액 계산하기 (0) | 2023.12.18 |
[87389] 나머지가 1이 되는 수 찾기 (0) | 2023.12.17 |
[92334] 신고 결과 받기 (0) | 2023.12.16 |
[118666] 성격 유형 검사하기 (0) | 2023.12.16 |