코딩테스트

코딩테스트 - 없는 숫자 더하기

오쟝 2024. 3. 6. 20:25

 

오늘의 문제!

제가 문제를 보고 생각한 방법은 0부터 9까지의 숫자가 든 문자열을 선언한 후 numbers의 각 숫자가 문자열에 포함되어 있는지 여부를 확인한 후 포함되어 있다면 answer에 더한 후 45에서 answer을 빼는 방법을 생각했습니다.

 

class Solution {
    public int solution(int[] numbers) {
        int answer = 0;
        String str = "0123456789";
        
        for(int i = 0; i<numbers.length; i++){
            if(str.contains(Integer.toString(numbers[i]))) answer += numbers[i];
        }
        return 45 - answer;
    }
}

 

"0~9"가 적힌 문자열 str을 선언하고 Integer.toString()을 사용해 numbers[i]가 str에 포함되어 있는지를 확인하였습니다.

 

과연~~

 

결과는 정답!!

 

문제를 푼 후 다른 분의 코드도 살펴보았습니다.

 

가장 상단에 있는 코드를 한 번 보겠습니다.

 

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

 

0부터 9까지의 합인 45에서 numbers[i]을 빼주는 방식으로 구현을 했습니다

저는 포함된 숫자가 무엇인지에 집중하였는데 이 분은 포함된 숫자를 바로 빼버리는 방식으로 저의 코드보다 효율성면에서 더 좋은 것 같습니다.

 

>

좀 더 쉽고 간결하게 코드를 짤 수도 있구나라는 생각이 드는... 언제나 더 쉬운 방법이 있으니까!