프로그래머스(Level1-7)없는 숫자 더하기

LEE ·2022년 2월 5일
0

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

구현코드:

class Solution {
    public int solution(int[] numbers) {
        int answer = 0;
        int[] num= new int[10];
        for(int i:numbers){
            num[i]=1;
        }
        for(int i=0;i<10;i++){
            if(num[i]!=1)
                answer+=i;
        }
        return answer;
    }
}

코드설명:
매개변수로 전달받은 numbers 의 길이는 최대 9이기 때문에 10으로 설정하고 numbers 를 반복한다. 이때 만약 numbers 값으로 0,1,2,4,5,7,8 이 들어있다면 num 배열에 1을 넣는다 즉, [1,1,1,,1,1,,1,1,]이렇게 들어가게된다.그리고 for 문0부터9까지 돌면서 배열에 1 이 들어있지 않다면 값을 더해준다.

다른획기적인 방법을 찾던도중 다른사람의 풀이에서 좋은 풀이를 보아서 가져왔다.

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

값을 미리 45 로 맞춰놓은 후 값을 빼주는 방식이다. 이렇게도 사고할수있다는 생각에 웃게되는 풀이인거같다.

0개의 댓글

관련 채용 정보