개발일기

[프로그래머스] 없는 숫자 더하기 본문

Algorithm

[프로그래머스] 없는 숫자 더하기

한둥둥 2024. 3. 29. 11:21

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내가 푼 코드

import java.util.*;

class Solution {
    public int solution(int[] numbers) {
        
        int answer = -1;
        boolean []bool = new boolean[10];
        
        for(int num : numbers){
            bool[num] = true;
        }
        
        int sum = 0;
        for(int i=0; i<bool.length;i++){
            if(!bool[i]) {
                sum += i;
            }
        }
        
        
        return sum>0? sum : answer;
    }
}

 

1. 문제에서 준 데이터가 만약 있다면 boolean 타입 배열을 선언하여 해당 숫자가 있다면 True, 없다면 False를 배열에 담는다.  배열을 넣을지 말지 판단해주는 배열이다. 

2. 우리는 더해주는 값은 boolean 타입 배열에서 false인 값이다. 그래서 boolean 배열에 인덱스에 접근하였을 때, false이면 sum추가해준 모습이다.

3. return 에 삼항 연산자를 사용하여 만들어주었다. 

 

인상 깊었던 풀이 

초기값에 45를 넣어주었던 것이 어메이징하고 충격적인 코드였다... 이런 생각은 나는 진짜 못하겠던데.. stream지린다..ㅠ

 

import java.util.Arrays;

class Solution {
    public int solution(int[] numbers) {
        return 45-Arrays.stream(numbers).sum();
    }
}