(왜 이게 탐욕법일까?)
# 초기 설정을 체육복이 있다 = 1로 설정하자
cloth = [1 for i in range (n)]
reserve.sort()
lost.sort()
# lost와 reserve에 공통된 애들을 빼줘야됨
common = list(set(reserve).intersection(lost))
reserve = [item-1 for item in reserve if item not in common]
lost = [item-1 for item in lost if item not in common]
for i in range (len(reserve)):
cloth[reserve[i]] += 1
cloth.append(1)
# 체육복이 없는 애들을 0 지정하자
for i in range (len(lost)):
cloth[lost[i]] = 0
for i in range (len(reserve)):
# 범위에서 뒤가 없다면
if reserve[i]+1 > n:
continue
else:
# 앞 번호에 있는 애한테 빌려주기
if cloth[reserve[i]] > 1 and cloth[reserve[i]-1] == 0:
cloth[reserve[i]-1] = 1
cloth[reserve[i]] -= 1
# 뒷 번호에 있는 애한테 빌려주기
if cloth[reserve[i]] > 1 and cloth[reserve[i]+1] == 0:
cloth[reserve[i]+1] = 1
cloth[reserve[i]] -= 1
num_true = Counter(cloth)
# 앞 뒤를 빼준다
answer = num_true[0]
return n - answer
from collections import Counter
def solution(n, lost, reserve):
answer = 0
# 초기 설정을 체육복이 있다 = 1로 설정하자
cloth = [1 for i in range (n)]
reserve.sort()
lost.sort()
# lost와 reserve에 공통된 애들을 빼줘야됨
common = list(set(reserve).intersection(lost))
reserve = [item-1 for item in reserve if item not in common]
lost = [item-1 for item in lost if item not in common]
for i in range (len(reserve)):
cloth[reserve[i]] += 1
cloth.append(1)
# 체육복이 없는 애들을 0 지정하자
for i in range (len(lost)):
cloth[lost[i]] = 0
for i in range (len(reserve)):
# 범위에서 뒤가 없다면
if reserve[i]+1 > n:
continue
else:
# 앞 번호에 있는 애한테 빌려주기
if cloth[reserve[i]] > 1 and cloth[reserve[i]-1] == 0:
cloth[reserve[i]-1] = 1
cloth[reserve[i]] -= 1
# 뒷 번호에 있는 애한테 빌려주기
if cloth[reserve[i]] > 1 and cloth[reserve[i]+1] == 0:
cloth[reserve[i]+1] = 1
cloth[reserve[i]] -= 1
num_true = Counter(cloth)
# 체육복이 없는 학생 수
answer = num_true[0]
return n - answer
오늘은 트랙이 나뉘고 첫 날이다! 앞으로도 더 열심히 꾸준히 달려야 하는데 TIL, 기술블로그도 하나하나 차근차근 써보려고 한다. 그동안은 집에 오면 헤롱헤롱이라 집중을 못했는데 이제는 스플에서 다 적고 가야지.
알고리즘은 개인적으로 많이 어려워지는 것 같다. lv1문제라니 솔직히 믿기지는 않지만 그래도 천천히 반례도 많이 생각해보고 예시도 많이 생각해보면서 공부하면 해결되는 것 같다.
앞으로 공부하고 싶은게 많은데 시간 분배를 어떻게 해야할지 고민을 많이 해봐야겠다. 운동도 이제야 조금 꾸준히 나갈 수 있게 된 것 같아서 이 흐름을 잃지 않았으멶 좋겠다. :D
좋은 정보 얻어갑니다, 감사합니다.