https://programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
내풀이
def solution(n, lost, reserve):
result=0
current = [1] * n //현재 체육복 보유 수량을 1로 초기화 한다.
for i in range(len(reserve)): //여벌이 있으면 보유수량에 1을 더해주고
current[reserve[i]-1]+=1
for i in range(len(lost)):
current[lost[i]-1]-=1 //체육복을 잃어버렸으면 보유수량에 1을 빼준다.
for i in range(n-1):
if current[i]==1:
continue
elif current[i]<1:
if current[i+1]>1:
current[i] +=1
current[i+1] -=1
elif current[i]>1:
if current[i+1]<1:
current[i] -=1
current[i+1] +=1
for i in current:
if i>=1:
result+=1
return result
시간이 좀 된 문제라서 그런지 가장 좋아요를 많이 받은 정답이 테스트케이스가 추가되면서 오류처리가 된다.
다만 문제 자체가 쉬운 문제라서 어떻게 풀든 상관은 없어 보이므로 이번에는 그냥 내 정답만 올린다.
'취준 > 프로그래머스' 카테고리의 다른 글
오픈채팅방 - 파이썬 (0) | 2022.05.26 |
---|---|
실패율 - 파이썬 (0) | 2022.05.24 |
소수만들기 - 파이썬 (0) | 2022.05.21 |
인형뽑기 - 파이썬 (0) | 2022.05.19 |
키패드 - 파이썬 (0) | 2022.05.13 |