← 실전 문제

가장 작은 양의 차이

C++디버깅

항목 두 개를 골라 값의 차이를 구해요. 두 값은 서로 달라야 해요. 가능한 양의 차이 중 가장 작은 값을 반환하고, 서로 다른 값의 항목 두 개를 고를 수 없으면 -1을 반환해요.

int solution(vector<int> values)가 요구한 값을 반환하도록 잘못된 한 줄만 수정해 주세요.

매개변수와 반환값

values의 길이는 0100, 각 값은 01,000,000이에요. 중복 값과 임의 순서를 허용해요. 반환값은 1~1,000,000 또는 -1이에요.

예시

  1. values={10, 2, 3, 20}이면 1를 반환해요. 2와 3의 차이 1이 가장 작아요.
  2. values={8, 8, 8}이면 -1를 반환해요. 모든 값이 같아 양의 차이를 만들 수 없어요.

실행용 입출력

첫 줄에 항목 수 n, 다음 줄에 값 n개를 입력해요. n=0이면 값 줄은 없어도 돼요. main은 입력을 매개변수로 바꾸고 반환값을 출력하는 채점 하네스예요. 풀이 대상은 solution의 한 줄이에요.

예시 입력

4
10 2 3 20

예상 결과

1

예시 입력

3
8 8 8

예상 결과

-1
핵심 개념
  • basic-sort-search: 정렬 뒤의 기준과 순서를 읽어요.
  • conditionals: 조건과 정확한 경계를 판별해요.
  • stl-vector: 벡터의 크기와 인덱스로 매개변수를 읽어요.

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

로그인하고 풀기