[TIL #16] 없는 숫자 더하기

2024. 7. 10. 16:49·Camp/T.I.L.

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 v가 주어진다.

v에서 찾을 수 없는 숫자를 모두 더한 수를 리턴하는 문제.

 

이 문제에서 중요한 건 범위가 0부터 9까지이고 중복된 수는 없다는 것이다.

여기서 1부터 9까지를 모두 더한 수인 45를 일종의 키로 활용할 수 있다.

이 사실을 인지하지 못하고 문제를 접근했다.

 

처음 제시한 답안은 아래와 같다.

#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> numbers) {
    int answer = 0;
    
    for(int i = 1; i < 10; ++i)
        if (find(numbers.begin(), numbers.end(), i) != numbers.end())
            continue;
        else
            answer += i;
    
    return answer;
}

find()를 통해 해당 값의 존재여부를 검사하며 하나씩 더해 나간다.

많은 사람들이 떠올릴 법한 정석적인 방법이다.

 

하지만 아까 말했듯이 키를 활용할 수 있다.

45에서 배열의 모든 원소를 더한 값을 빼면 정확히 우리가 찾는 답이 나온다.

#include <numeric>

int solution(vector<int> numbers) {
    return 45 - accumulate(numbers.begin(), numbers.end(), 0);
}

그 점을 활용한다면 이렇게 단 한 줄로 해결이 된다.

 

이런 점들을 찾아가는 재미가 있는 것 같다.

'Camp > T.I.L.' 카테고리의 다른 글

[TIL #18] 약수의 개수와 덧셈  (0) 2024.07.12
[TIL #17] 가운데 글자 가져오기  (0) 2024.07.11
[TIL #15] 콜라츠 추측  (0) 2024.07.09
[TIL #14] 정수 내림차순으로 배치하기  (0) 2024.07.04
[TIL #13] 정수 제곱근 판별  (0) 2024.07.03
'Camp/T.I.L.' 카테고리의 다른 글
  • [TIL #18] 약수의 개수와 덧셈
  • [TIL #17] 가운데 글자 가져오기
  • [TIL #15] 콜라츠 추측
  • [TIL #14] 정수 내림차순으로 배치하기
BVM
BVM
  • BVM
    E:\
    BVM
  • 전체
    오늘
    어제
    • 분류 전체보기 (168)
      • Thoughts (14)
      • Study (69)
        • Japanese (3)
        • C++ & C# (46)
        • Javascript (3)
        • Python (14)
        • Others (3)
      • Play (1)
        • Battlefield (1)
      • Others (11)
      • Camp (73)
        • T.I.L. (57)
        • Temp (1)
        • Standard (10)
        • Challenge (3)
        • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • 본 블로그 개설의 목적
  • 인기 글

  • 태그

    FF14
    로깅
    Dalamud
    스타필드
    OSI
    C++
    서버
    Selenium
    IOCP
    Asio
    클라우드
    docker
    JS
    프로그래머스
    베데스다
    Server
    7계층
    discord py
    c#
    포인터
    bot
    암호화
    Python
    cloudtype
    discord
    boost
    db
    네트워크
    Network
    네트워크 프로그래밍
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
BVM
[TIL #16] 없는 숫자 더하기
상단으로

티스토리툴바