반응형
문제설명
https://programmers.co.kr/learn/courses/30/lessons/42862
사고과정
- 예전에 비슷한 문제를 풀어본 적이 있던 것 같았다.. 그리디 유형이였는데 풀지 못했다.. 내가 놓친 점은 도난당한 사람과 여분의 옷이 있는 사람 모두 동일할 때를 놓쳤다.. 그래서 이 동시 조건을 만족하는 사람을 도난당한 사람이 있는 리스트 lost 와 여분 옷 있는 사람들이 있는 리스트 reserve에서 빼주고 시작해야 한다..
- 그런 후 여분 리스트 reserve를 하나씩 돌면서 그 reserve의 원소가 왼쪽 -> 오른쪽 순서로 탐색하면서 lost 원소가 있다면 빌려주는 식으로 구현해야 했다..
- 그리디는 감 잡기가 너무 힘든 것 같다..
풀이(스스로 못 푼 풀이)
def solution(n, lost, reserve):
# 도난 당한 사람, 여분 있는 사람 둘 다 중복해 있는 사람 제거하고 수행
set_lost = set(lost) - set(reserve)
set_reserve = set(reserve) - set(lost)
for i in set_reserve:
if i-1 in set_lost:
set_lost.remove(i-1)
elif i+1 in set_lost:
set_lost.remove(i+1)
answer = n - len(set_lost)
return answer
반응형
'알고리즘 삽질장' 카테고리의 다른 글
[프로그래머스] 약수의 개수와 덧셈 (0) | 2021.12.07 |
---|---|
[프로그래머스] 폰켓몬 (0) | 2021.12.07 |
[프로그래머스] 모의고사 (0) | 2021.12.07 |
[프로그래머스] K번째 수 (0) | 2021.12.07 |
[프로그래머스] 완주하지 못한 선수 (0) | 2021.12.07 |