반응형
https://programmers.co.kr/learn/courses/30/lessons/42862
풀이
고려할것이
첫번째 자기 자신꺼 잃어버릴때
두번째 앞에 사람 우선으로 or 뒤에 사람 우선으로 빌릴지 생각해주니까 통과
# 프로그래머스 lv1
# 그리디
# 고려 안한 tc 1 자기 자신이 잃어버릴때
# tc2 앞에서 빌릴지 뒤에서 빌릴지
import copy
def solution(n, lost, reserve):
tmp_lost=copy.deepcopy(lost)
tmp_reserve=[]
for i in reserve:
if i not in lost:
tmp_reserve.append(i)
else:
tmp_lost.remove(i)
reserve=copy.deepcopy(tmp_reserve)
lost=copy.deepcopy(tmp_lost)
for i in tmp_reserve:
if i+1 in tmp_lost:
tmp_lost.remove(i+1)
continue
if i-1 in tmp_lost:
tmp_lost.remove(i-1)
for i in reserve:
if i-1 in lost:
lost.remove(i-1)
continue
if i+1 in lost:
lost.remove(i+1)
answer=max(n-len(tmp_lost),n-len(lost))
return answer
배울점.
다른사람 풀이 보니까 첫번째 for 문 안돌리고 list 선언할때 안에다가 for문 넣어주는거..
코드가 훨씬 간결하다,,,
반응형
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Python/파이썬 프로그래머스] 다트게임(카카오) (0) | 2021.06.30 |
---|---|
[Python/파이썬 프로그래머스] 실패율 (0) | 2021.06.29 |
[Python/파이썬 백준 1339] 단어 수학 (0) | 2021.06.02 |
[Python/파이썬 1107 백준] 리모컨 (0) | 2021.05.20 |
[Python/파이썬 프로그래머스] 광고 삽입 (0) | 2021.05.19 |