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