티스토리 뷰

반응형

 

처음에 쬐끔 돌아가는 바람에 시간을 썼던 문제지만 다행히 생각을 바꿔 쉽게 풀었습니다. 


문제의 조건

 

1. 0 ~ 9 까지의 숫자가 담긴 배열이 주어진다. 

 

2. 그 중에서 없는 숫자만 더한 합을 구하라. 

만약 [0,1,2,3,5,6,7,8] 배열이 주어지면 4와 9가 없다. 

4 + 9를 리턴하면 됨 

 

3. 중복된 숫자가 들어있지는 않다. 

 


#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> numbers) {
    int answer = 0;

    for (int i = 0; 10 > i; i++)
    {
        //0~9까지 가면서 numbers 배열에서 찾지 못한 숫자면 합계에 더하기 
        auto it = find(numbers.begin(), numbers.end(), i);
        if (numbers.end() == it)
            answer += i;
    }

    return answer;
}

 

다른 분들 풀이 보니까 0~9 총합에서 배열에 들은 숫자를 빼는 방법으로 푼 분도 많이 계셨는데...

더 쉬운 방법이 있었네...ㅎ 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함