반응형
https://programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
풀이
고려할것이
첫번째 자기 자신꺼 잃어버릴때
두번째 앞에 사람 우선으로 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 |