모든 챌린지
보통 0명 해결 정답률 0%

Nearest Smaller Value to the Left

For each number, find the closest earlier position containing a strictly smaller number.

문제

For each number, find the closest earlier position containing a strictly smaller number. Equal numbers do not qualify. Positions start at 1; use 0 when there is no smaller number to the left.

Implement nearest_smaller_value(numbers).

Input

numbers: Numbers in their original order.

Output

Return one earlier position (or 0) for every input value.

제약 조건

0…200,000 integers, each between −1,000,000,000 and 1,000,000,000. Empty input returns an empty list.

예시

예시 1
입력:
numbers = [4, 2, 5, 3]

예상 출력:
expected = [0, 0, 2, 2]
입력:
std::vector<long long> numbers = {4, 2, 5, 3};

예상 출력:
std::vector<long long> expected = {0, 0, 2, 2};
입력:
long[] numbers = new long[] {4, 2, 5, 3};

예상 출력:
long[] expected = new long[] {0, 0, 2, 2};

설명

4 has no earlier value and 2 has no smaller earlier value. Both 5 and 3 find the value 2 at position 2.

예시 2
입력:
numbers = [2, 2, 2]

예상 출력:
expected = [0, 0, 0]
입력:
std::vector<long long> numbers = {2, 2, 2};

예상 출력:
std::vector<long long> expected = {0, 0, 0};
입력:
long[] numbers = new long[] {2, 2, 2};

예상 출력:
long[] expected = new long[] {0, 0, 0};

설명

Earlier equal values are not strictly smaller. Every answer is 0.

참고 자료

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

다른 사람의 풀이 보기

커뮤니티 솔루션

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