코딩테스트5

송은혜·2022년 3월 22일
0

코딩테스트

목록 보기
5/5

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

제한사항

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

입출력 예

  • 내가 해결한 결과!

    0부터 9까지만 있다고 함.

    우선은 입력값 numbers 를 반복문으로 돌면서 , 어떤 숫자가 있는 건지 알아야겠다고 생각.
    0~9 를 돌면서 같은게 뭐가 있는지 확인을 하면 되겠다고 생각함.

    → 뭐가 없는지 어떻게 알지 ?
    → 어차피 들어올 숫자도 제한적인데 그냥 그거 다 더한 거에서 있는걸 빼면 되겠다고 생각함.

    class Solution {
        public int solution(int[] numbers) {
            
            int j = 0;
            int sum = 45;
            for (j = 0; j < numbers.length; j++) {
            	 for (int i=0; i < 10; i++) {
            		 if (numbers[j] == i) {
            			sum -= i;
            		    continue;
            	}else {
            		continue;
            	}
            }    
        }
            return sum;
    	}
    }


    나와 다른 코드

    결국 나는 이렇게 간결하게 할 수 있었음 .........

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


boolean을 사용한 코드!

내가 이해한 해석

boolean으로 배열을 만들면 초기 값이 전부 fales 인 것 같다. 그래서, numbers 안에 들어있는 숫자들은 true 가 되게 해주고, 나머지 숫자들은 초기 값인 false 일테니 , 그 값들만 더해준것!

class Solution {
    public int solution(int[] numbers) {
        int answer = 0;

        boolean[] numarr = new boolean[10];

        for(int i =0; i<numbers.length; i++){
           numarr[numbers[i]] = true;
        }

        for(int i=0; i<numarr.length; i++){
            if(numarr[i] == false){
                answer += i;
            }
        }
        return answer;
    }
}

0개의 댓글

Powered by GraphCDN, the GraphQL CDN