https://programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
def solution(n, lost, reserve):
students = [-1] + ([1] * n)
students[0] = -1
for i in lost:
students[i] -= 1
for i in reserve:
students[i] += 1
for i in range(1,n+1):
if students[i] > 1:
if students[i-1] == 0:
students[i-1] += 1
students[i] -= 1
elif n > i and students[i+1] == 0:
students[i+1] += 1
students[i] -= 1
count = 0;
for i in range(1, n+1):
if students[i] > 0:
count += 1
return count
--> 요게 더 낫다
[Day3] [코딩테스트 연습] 탐욕법(Greedy) - 체육복
알고리즘의 각 단계에서 그 순간에 최적이라고 생각되는 것을 선택단, 현재의 선택이 마지막 해답의 최적성을 해치지 않는 경우만 적용가능빌려주려 합니다. 학생
velog.io
'2022 스터디 > 알고리즘 스터디[2022]' 카테고리의 다른 글
정렬 (0) | 2023.03.18 |
---|---|
[DFS/BFS] 타겟 넘버 (0) | 2022.05.02 |
[해시] 완주하지 못한 선수 (0) | 2022.04.11 |