본문 바로가기
알고리즘/문제 풀이

[Java 자바] 프로그래머스 > Lv.1 없는 숫자 더하기

by _eunji_ 2022. 2. 18.

https://programmers.co.kr/learn/courses/30/lessons/86051

 

코딩테스트 연습 - 없는 숫자 더하기

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

programmers.co.kr

문제 설명

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

제한사항

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

 

풀이 방법

  1. ArrayList를 선언하여 numbers의 원소들을 추가한다.
  2. 0~9까지 반복문을 통해 contains() 함수를 이용하여 해당 숫자가 list에 존재하는지 아닌지 검사한다.
  3. 조건문이 false일때, 숫자를 더한다.

 

내 코드

import java.util.*;
class Solution {
    public int solution(int[] numbers) {
        int answer = 0;
        ArrayList<Integer> list = new ArrayList<Integer>();
        
        for(int i=0;i<numbers.length;i++) list.add(numbers[i]);
        
        
        for(int i=0;i<=9;i++){
            if(!list.contains(i)) answer+=i;
        }
        
        
        return answer;
    }
}

 

다른 풀이

class Solution {
    public int solution(int[] numbers) {
        int sum = 45;
        for (int i : numbers) {
            sum -= i;
        }
        return sum;
    }
}

 

0~9까지 합(45)에서 numbers의 원소의 값을 빼어 결과를 반환해주는 방법이다.

 

 

 

댓글