번호의 마지막 자리는 체크 숫자예요. 마지막 자리를 제외한 앞자리 숫자들을 모두 더한 뒤 10으로 나눈 나머지가 체크 숫자와 같으면 올바른 번호예요. 한 자리 번호에서는 앞자리 합을 0으로 봐요. 번호가 반복되면 각각 따로 세어요.
int solution(vector<int> codes)가 요구한 값을 반환하도록 빈칸을 채워 주세요.
매개변수와 반환값
codes의 길이는 0100, 번호는 0999,999인 정수예요. 숫자 앞에 붙인 0은 별도 자릿수로 취급하지 않아요. 반환값은 올바른 번호 수로 0~codes.size()예요.
예시
codes={1236, 4565, 1234}이면2를 반환해요. 1236은 앞자리 합 6, 4565는 앞자리 합 15의 나머지가 5예요. 1234는 맞지 않아요.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: 벡터의 크기와 인덱스로 매개변수를 읽어요.