1. Home
  2. 코딩테스트
  3. 점진적 과부하
문제 설명

점진적 과부하

스쿼트에 진심인 피트니스 매니아가 매일 최대 중량 기록을 측정하고 있습니다.

그의 목표는 더 무거운 무게를 드는 날을 지속적으로 만들어가는 것입니다.

매일의 스쿼트 최대 중량 기록이 정수 배열 weights로 주어졌을 때, 각 날의 중량보다 더 높은 중량을 든 날까지 걸린 일수를 계산하여 배열로 반환하는 solution 함수를 작성하세요. 만약 이후에 더 높은 중량을 들지 못했다면 해당 값은 0으로 설정합니다.

입출력 예시

예시 1:

  • 입력: weigths = [25, 23, 31, 28, 25, 25, 27, 29]

  • 출력: [2, 1, 0, 4, 2, 1, 1, 0]

  • 설명:

    • 첫 번째 날(25kg): 2일 후 31kg으로 기록 경신.

    • 두 번째 날(23kg): 1일 후 31kg으로 기록 경신.

    • 세 번째 날(31kg): 이후 더 높은 중량 없음.

    • 네 번째 날(28kg): 4일 후 29kg으로 기록 경신.

    • 다섯 번째 날(25kg): 2일 후 27kg으로 기록 경신.

    • 여섯 번째 날(25kg): 1일 후 27kg으로 기록 경신.

    • 일곱 번째 날(27kg): 1일 후 29kg으로 기록 경신.

    • 일곱 번째 날(29kg): 이후 더 높은 중량 없음.

예시 2:

  • 입력: weights = [45, 42, 50, 48, 46, 52, 49]

  • 출력: [2, 1, 3, 2, 1, 0, 0]

  • 설명:

    • 첫 번째 날(45kg): 2일 후 50kg으로 기록 경신.

    • 두 번째 날(42kg): 1일 후 50kg으로 기록 경신.

    • 세 번째 날(50kg): 3일 후 52kg으로 기록 경신.

    • 네 번째 날(48kg): 2일 후 52kg으로 기록 경신.

    • 다섯 번째 날(46kg): 1일 후 52kg으로 기록 경신.

    • 여섯 번째 날(52kg): 이후 더 높은 중량 없음.

    • 일곱 번째 날(49kg): 이후 더 높은 중량 없음.

예시 3:

  • 입력: weights = [79, 76, 73, 65, 65, 59]

  • 출력: [0, 0, 0, 0, 0, 0]

  • 설명:

    • 첫 번째 날(79kg): 이후 더 높은 중량 없음.

    • 두 번째 날(76kg): 이후 더 높은 중량 없음.

    • 세 번째 날(73kg): 이후 더 높은 중량 없음.

    • 네 번째 날(65kg): 이후 더 높은 중량 없음.

    • 다섯 번째 날(65kg): 이후 더 높은 중량 없음.

    • 여섯 번째 날(59kg): 이후 더 높은 중량 없음.

제한 사항

  • 1 ≤ weights.length ≤ 105

  • 1 ≤ weights[i] ≤ 103

weights

[25,23,31,28,25,25,27,29]

문제 설명

점진적 과부하

스쿼트에 진심인 피트니스 매니아가 매일 최대 중량 기록을 측정하고 있습니다.

그의 목표는 더 무거운 무게를 드는 날을 지속적으로 만들어가는 것입니다.

매일의 스쿼트 최대 중량 기록이 정수 배열 weights로 주어졌을 때, 각 날의 중량보다 더 높은 중량을 든 날까지 걸린 일수를 계산하여 배열로 반환하는 solution 함수를 작성하세요. 만약 이후에 더 높은 중량을 들지 못했다면 해당 값은 0으로 설정합니다.

입출력 예시

예시 1:

  • 입력: weigths = [25, 23, 31, 28, 25, 25, 27, 29]

  • 출력: [2, 1, 0, 4, 2, 1, 1, 0]

  • 설명:

    • 첫 번째 날(25kg): 2일 후 31kg으로 기록 경신.

    • 두 번째 날(23kg): 1일 후 31kg으로 기록 경신.

    • 세 번째 날(31kg): 이후 더 높은 중량 없음.

    • 네 번째 날(28kg): 4일 후 29kg으로 기록 경신.

    • 다섯 번째 날(25kg): 2일 후 27kg으로 기록 경신.

    • 여섯 번째 날(25kg): 1일 후 27kg으로 기록 경신.

    • 일곱 번째 날(27kg): 1일 후 29kg으로 기록 경신.

    • 일곱 번째 날(29kg): 이후 더 높은 중량 없음.

예시 2:

  • 입력: weights = [45, 42, 50, 48, 46, 52, 49]

  • 출력: [2, 1, 3, 2, 1, 0, 0]

  • 설명:

    • 첫 번째 날(45kg): 2일 후 50kg으로 기록 경신.

    • 두 번째 날(42kg): 1일 후 50kg으로 기록 경신.

    • 세 번째 날(50kg): 3일 후 52kg으로 기록 경신.

    • 네 번째 날(48kg): 2일 후 52kg으로 기록 경신.

    • 다섯 번째 날(46kg): 1일 후 52kg으로 기록 경신.

    • 여섯 번째 날(52kg): 이후 더 높은 중량 없음.

    • 일곱 번째 날(49kg): 이후 더 높은 중량 없음.

예시 3:

  • 입력: weights = [79, 76, 73, 65, 65, 59]

  • 출력: [0, 0, 0, 0, 0, 0]

  • 설명:

    • 첫 번째 날(79kg): 이후 더 높은 중량 없음.

    • 두 번째 날(76kg): 이후 더 높은 중량 없음.

    • 세 번째 날(73kg): 이후 더 높은 중량 없음.

    • 네 번째 날(65kg): 이후 더 높은 중량 없음.

    • 다섯 번째 날(65kg): 이후 더 높은 중량 없음.

    • 여섯 번째 날(59kg): 이후 더 높은 중량 없음.

제한 사항

  • 1 ≤ weights.length ≤ 105

  • 1 ≤ weights[i] ≤ 103

weights

[25,23,31,28,25,25,27,29]