없는 숫자 더하기

김나영·2023년 6월 18일
0

프로그래머스

목록 보기
6/39

문제 : 없는 숫자 더하기

풀이

for (int i = 0; i < numbers.length; i++) {
            answer += numbers[i];
  • 0부터 numbers의 길이만큼 for문을 사용해 반복적으로 출력

  • numbers[i]를 answer와 더한 후 저장

return 45 - answer;
  • 0부터 9까지 모두 더한 수는 45

  • numbers에 포함되어 있지 않은 수의 합들을 구해야하므로 전체(45)에서 answer의 값을 빼면 numbers에 없는 숫자의 합이 나옴

전체 코드

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

또 다른 코드

import java.util.Arrays;
class Solution {
     public static int solution(int[] numbers) {
        int answer = 0;
        boolean[] flag = new boolean[10];
        Arrays.fill(flag, false);
        for(int i = 0; i <= 9; i++){
            for(int j : numbers){
                if(i == j)
                    flag[i] = true;
            }
        }
        for(int i = 0; i < flag.length; i++){
            if(flag[i] == false)
                answer += i;
        }
        return answer;
    }
}
  • 배열의 길이가 10인 boolean 타입의 배열 flag를 생성 및 선언

  • Arrays.fill()을 사용하여 flag의 배열을 모두 false로 초기화

  • numbers는 0부터 9까지 숫자이므로 for문을 사용하여 반복 출력

  • 향상된 for문을 사용하여 int 타입의 변수 j를 선언

  • numbers 배열에 대한 원소값을 출력 저장된 값이 매 반복마다 하나씩 순서대로 변수에 저장

  • 원래 나와야하는 총 합계와 주어진 숫자의 합계가 같을 때 true

  • 저장된 flag의 길이만큼 for문을 사용하여 반복 출력

  • 원래 나와야하는 총 합계와 주어진 숫자의 합계가 같지 않아 false가 될 때 flag의 i번째 값을 answer에 더한 후 저장

  • 합계가 다른 값이 저장되어 있는 answer를 return

0개의 댓글