[사전 코스] Programmers - 없는 숫자 더하기

Kim Hyen Su·2024년 3월 12일
0

⏲️ 알고리즘

목록 보기
83/95

항해99 취업코스 2기 시작과 함께 알고리즘 문제 10문제를 던져줬다. 많은 자료구조적인 개념을 요구하는 문제는 아니였기 때문에 크게 어려움은 없었지만, 푸는데 상당히 오랜시간이 걸렸다.
혼자 알고리즘 문제를 푸는것과 다른 점은 다른 참여자분들이랑 코드를 공유해보는 새로운 경험을 할 수 있었더는 점이다.Good :)

없는 숫자 더하기 : 문제 링크

알고리즘 로직 설명

0~9까지의 숫자 중 일부가 들어있는 배열 numbers를 매개변수로 받고, 0~9까지의 숫자 중 numbers~에 없는 숫자들의 합을 구하는 문제이다.

처음 문제를 보았을 때, 0~9까지 중 없는 숫자를 어떤 저장소에 저장해놨다가 이를 가져와서 없는 숫자만 더하도록 구현해야지 라고 생각했다.

이러한 생각의 결과물은 이러하다.

👾 제출 코드

class Solution {
    public int solution(int[] numbers) {
        int answer = 0;
        
        boolean[] a = new boolean[10];
        
        for(int i=0; i<numbers.length; i++){
            int idx = numbers[i];
            a[idx] = true;
        }
        
        for(int i=0; i<a.length;i++){
            if(!a[i]){
                answer += i;
            }
        }
        
        return answer;
    }
}

그러나!!

다른 참여자 분들의 풀이를 보니 0~9까지의 숫자의 합인 45에서 현재 numbers에 있는 수들의 합을 빼주면, 오히려 쉽게 결과가 나오도록 구현한 것을 확인했다. 아... 저렇게도 생각할 수 있겠구나 싶었고, 다른 분들이 구현한 코드의 가독성이 훨씬 좋겠다는 생각이 들었다.

😀 참고 코드

import java.util.Arrays;

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

Stream까지 함께 구현하니 정말 쉬운 코드가 완성되었다. 대박 대박🎇

profile
백엔드 서버 엔지니어

0개의 댓글