def solution(n, lost, reserve):
answer = 0
answer += (n - len(lost))
nReserve = []
for i in range(len(reserve)):
temp = reserve[i]
if temp in lost:
lost.remove(temp)
answer += 1
else:
nReserve.append(temp)
for i in range(len(lost)):
for j in range(len(nReserve)):
if abs(lost[i] - nReserve[j]) == 1:
answer += 1
nReserve[j] = -2
break
return answer
엄청 헤멧다...
왜냐...
여벌의 체육복을 가져온 애들이 lost에 있을 수 있다는걸
자각하지 못하고 풀어서....
근데 더 좋은 방법이 있을꺼 같다는 생각이다..
그래서 조금 해본게
def solution(n, lost, reserve):
answer = 0
nLost = list(set(lost) - set(reserve))
nReserve = list(set(reserve) - set(lost))
answer += (n - len(nLost))
for i in nLost:
for j in range(len(nReserve)):
if abs(i - nReserve[j]) == 1:
answer += 1
nReserve[j] = -2
break
return answer
이건데.. 성능에 큰 차이가 있거나 하진 않은거 같다..
'Algorithm > Greedy' 카테고리의 다른 글
[백준] 14916 거스름돈 (0) | 2020.10.16 |
---|---|
[백준] 11399번 ATM (0) | 2020.10.13 |
[백준] 11047번 동전 0 (0) | 2020.10.07 |
[백준] 14720번 우유 축제 (0) | 2020.10.06 |
[백준] 10162번 전자레인지 (0) | 2020.10.06 |
댓글