Menu
CoddyTech

Task Scheduler

대문자로 이루어진 문자열 tasks와 정수 n이 주어집니다. 프로세서는 한 시간 단위마다 원하는 순서로 작업 하나를 실행하거나, 한 시간 단위 동안 유휴 상태로 있을 수 있습니다.

같은 문자를 두 번 실행하려면 그 사이에 최소 n개의 시간 단위가 필요합니다. 시간 단위 t에 실행된 문자는 가장 빨라도 시간 단위 t+n+1에 다시 실행할 수 있습니다. 모든 작업을 실행하는 데 필요한 최소 시간 단위 수를 반환하세요.

함수

leastInterval(tasks: string, n: integer) → integer
tasksstring
과제마다 대문자 한 글자씩
ninteger
같은 문자가 두 번 연속 나타날 때 그 사이에 있는 단위의 최소 개수
반환값integer
유휴 상태인 단위를 포함한 최소 단위 수

제약 조건

  • 1 ≤ tasks.length ≤ 104
  • tasks에는 대문자 A부터 Z까지만 포함되어 있습니다.
  • 0 ≤ n ≤ 100

예제

입력
tasks = "CACBAC"n = 2
출력
7
설명
C는 두 유닛 간격으로 세 번 실행되므로, C의 실행만으로 총 7유닛이 걸립니다. C A B C A, 유휴, C 순서는 A와 B로 간격을 채우며 유휴 유닛 하나가 필요합니다: 7.
challenge icon

후속 질문

유휴 시간 단위마다 .가 들어가는 문자열로, 길이가 가장 짧은 스케줄도 하나 반환할 수 있나요?

코드 초기화
def leastInterval(tasks, n):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자들

tasks = "CACBAC"
n = 2

예상 출력

7