CodingTest/programmers

[programmers] 없는 숫자 더하기 풀이 - C++

황수진 2021. 11. 10. 14:33

사용언어 : C++

 

문제

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

 

 

제한사항

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

 

입출력 예

 

numbers result
[1,2,3,4,6,7,8,0] 14
[5,8,4,0,6,7,9] 6

 

 

문제풀이  

크키가 10인 int 배열을 이용해 numbers에 존재하면 1, 존재하지 않으면 0 (flag) 

존재하지 않는 값이라면 (flag[i]==0) answer에 i를 더해준다. 

 

 

 

전체코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// numbers_len은 배열 numbers의 길이입니다.
int solution(int numbers[], size_t numbers_len) {
    int answer = 0;
    int flag[10];
    for(int i=0;i<10;i++){
        flag[i]=0;
    }
    for(int i=0;i<numbers_len;i++){
        flag[numbers[i]]=1;
    }
    for(int i=0;i<10;i++){
        if(!flag[i])
            answer+=i;
    }
    if(answer==0)
        answer=-1;
    return answer;
}

총평

깔끔하게 풀진 못했지만 문제 자체는 쉽다

 


문제출처

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

 

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

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

programmers.co.kr