모든 챌린지
어려움 0명 해결 정답률 0%

서로 다른 이웃 숫자를 가진 수 세기

인접한 십진수 자릿수가 모두 다르게 이루어진 구간 내 값을 세세요.

left부터 right까지(양 끝값 포함) 인접한 자릿수가 모두 다른 정수의 개수를 세세요. 숫자는 일반적인 십진수 표기(앞에 0 없음)를 사용합니다. 0과 모든 한 자리 수는 조건을 만족합니다.

counting_numbers(left, right)를 구현하세요.

입력

left: 허용되는 첫 번째 값입니다.

right: 허용되는 마지막 값입니다.

출력

조건을 만족하는 값의 개수를 반환하세요.

제약 조건

0 ≤ left ≤ right ≤ 10¹⁸. 구간이 너무 커서 모든 정수를 하나씩 검사할 수 없습니다.

예시

예시 1
입력:
left = 10
right = 15

예상 출력:
expected = 5
입력:
long long left = 10;
long long right = 15;

예상 출력:
long long expected = 5;
입력:
long left = 10;
long right = 15;

예상 출력:
long expected = 5;

설명

11만 인접한 자릿수가 같으므로 제외됩니다. 나머지 다섯 수는 조건을 만족합니다.

예시 2
입력:
left = 0
right = 9

예상 출력:
expected = 10
입력:
long long left = 0;
long long right = 9;

예상 출력:
long long expected = 10;
입력:
long left = 0;
long right = 9;

예상 출력:
long expected = 10;

설명

열 개의 값 모두 한 자리 수이므로 인접한 자릿수가 같지 않습니다.

참고 자료

이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.

다른 사람의 풀이 보기

커뮤니티 솔루션

아직 공개된 풀이가 없습니다. 문제를 풀고 첫 풀이를 공유하세요.