← 실전 문제

체크 숫자를 통과한 번호

C++빈칸 채우기

번호의 마지막 자리는 체크 숫자예요. 마지막 자리를 제외한 앞자리 숫자들을 모두 더한 뒤 10으로 나눈 나머지가 체크 숫자와 같으면 올바른 번호예요. 한 자리 번호에서는 앞자리 합을 0으로 봐요. 번호가 반복되면 각각 따로 세어요.

int solution(vector<int> codes)가 요구한 값을 반환하도록 빈칸을 채워 주세요.

매개변수와 반환값

codes의 길이는 0100, 번호는 0999,999인 정수예요. 숫자 앞에 붙인 0은 별도 자릿수로 취급하지 않아요. 반환값은 올바른 번호 수로 0~codes.size()예요.

예시

  1. codes={1236, 4565, 1234}이면 2를 반환해요. 1236은 앞자리 합 6, 4565는 앞자리 합 15의 나머지가 5예요. 1234는 맞지 않아요.
  2. codes={0, 7, 9918}이면 1를 반환해요. 0은 체크 숫자 0과 앞자리 합 0이 같고, 9918은 앞자리 합 19의 나머지 9와 체크 숫자 8이 달라요. 7도 맞지 않아요.

실행용 입출력

첫 줄에 번호 수 n, 다음 줄에 번호 n개를 입력해요. n=0이면 번호 줄은 없어도 돼요. main은 입력을 매개변수로 바꾸고 반환값을 출력하는 채점 하네스예요. 풀이 대상은 solution과 제공된 보조 함수의 빈칸이에요.

예시 입력

3
1236 4565 1234

예상 결과

2

예시 입력

3
0 7 9918

예상 결과

1
핵심 개념
  • number-theory-basic: 몫과 나머지의 의미를 구분해요.
  • loops: 다음 반복으로 이어지는 상태를 확인해요.
  • function-design: 보조 함수의 인자와 반환 계약을 연결해요.
  • stl-vector: 벡터의 크기와 인덱스로 매개변수를 읽어요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기