본문 바로가기
Java/알고리즘

[프로그래머스/알고리즘] 없는 숫자 더하기 (자바/Java)

by 전재경 2022. 11. 18.

문제 설명

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

 

제한사항

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

 

 

 

입출력 예 #1

  • 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.

입출력 예 #2

  • 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.

 

Step1. 문제분석

 

내가 생각한 문제의 풀이는 어차피 어떤 수가 뽑아졌는지 그런게 아닌 수의 합만 찾으면 된다고 했고

수가 정해져 있으니 0~ 9까지의 숫자 중 포함된 숫자의 값을 sum값에 저장한 뒤

0~9까지의 수의 합은 45이기 때문에 45- (아까 배열에서 값을 얻은 sum값)을 하면

결과가 나올거라 생각했다.

 

Step2. 문제풀이 코드

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

        return answer;
    }

}

 

Step3. 다른 사람의 풀이 코드

 

 

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

 

굳이 값을 추가하는 것이 아닌 처음부터 sum 값에 45라는 값을 주고

없는 숫자의 값을 제외한 수들을 빼면 자동으로 제외한 수의 합이 되는 것이였다.

조금만 더 생각을 했으면 이런 방향으로도 계산이 가능했을 것 같은데 아쉽다.

댓글