본문 바로가기
JAVA/Programmers

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

by tripleup 2023. 8. 4.
728x90
반응형

[프로그래머스] 코딩테스트 연습 -> 월간 코드 챌린지 시즌3-> 없는 숫자 더하기

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


해결 과정

 

이 문제는 이해하면 간단한 문제다.

본래는 단순히 number[i]에 없는 숫자를 따로 빼서 answer에 더할 생각이었지만, 구조적인 부분에서 쉽게 해결이 되지 않아서 문제를 다시 읽어보았더니 numbers의 원소는 모두 다르다는 점이었다.

 

결국 numbers에 속하지 않은 0부터9까지의 숫자를 더하는 것인데,

이것을 반대로 생각해보면 0부터9까지의 합에서, numbers에 들어가는 숫자는 빼면 되는 것이다.

 

이 생각을 기초로 하여, 일단 가독성을 위해 0부터 9까지의 합을 hap 이라는 변수에 저장해 주었다(int hap = 45).

 

그러고 이중 for문을 사용해서

numbers 각각의 원소를 0부터 9까지의 숫자를 비교 대상으로 놓고,

만약 numbers의 원소가 0부터 9까지의 숫자로 동일하다면, 그  때의 값을 hap에서 빼주면 되는 것이다!

 

결국 배열 numbers에 들어있는 숫자는 answer에 누적하여 더해줬고,

우리는 들어있지 않은 숫자의 합을 return 해야 하므로

 

hap에서 answer을 뺀 값을 return 해주면 된다.

 

소스 코드

 

class Solution {
    public int solution(int[] numbers) {
        int answer = 0;
        int hap = 45;
        
        for (int i=0; i<numbers.length; i++) {
        }       
        
        for (int i=0; i<=9; i++) {
            for (int j=0; j<numbers.length; j++) {
                if (numbers[j] == i) {
                     answer += i;
                }
            }
            
        }
        return hap-answer;
    }
}

 


728x90
반응형

댓글