Notice
Recent Posts
Recent Comments
Link
나의 개발일지
[프로그래머스] Lv.1 체육복 [Python, 파이썬] 본문
def solution(n, lost, reserve):
# 전체 수에서 체육복을 빼앗긴 사람들의 수를 뺀다.
answer = n - len(lost)
# 잃어버린 사람들의 번호를 오름차순으로 정렬 (lost 요소들이 정렬되어 들어오지 않는 케이스가 있기 때문)
lost.sort()
# (중복을 제거하는 과정)
# 여분의 체육복을 들고왔는데 빼앗긴 사람들을 -1로 변경 (이 사람들은 체육복을 빌려줄 수 없음)
# 빼앗긴 사람도 -1로 변경
for i in lost:
if i in reserve:
lost[lost.index(i)] = -1
reserve[reserve.index(i)] = -1
for i in lost:
# -1로 되어있으면 answer += 1(중복된 사람들은 빌려줄 수는 없지만 자신의 체육복은 있어서 수업 참가 가능)
if i == -1:
answer += 1
continue
# 체육복이 없는 사람의 앞 번호가 여분을 들고 있으면 빌려주고 -1로 변경 (빌려주면 또 못 빌려줌)
if i - 1 in reserve:
reserve[reserve.index(i-1)] = -1
answer += 1
# 체육복이 없는 사람의 뒷 번호가 여분을 들고 있으면 빌려주고 -1로 변경 (빌려주면 또 못 빌려줌)
elif i + 1 in reserve:
reserve[reserve.index(i+1)] = -1
answer += 1
return answer
'프로그래머스' 카테고리의 다른 글
| [프로그래머스] Lv.2 타겟 넘버 [Python, 파이썬] (0) | 2023.03.09 |
|---|---|
| [프로그래머스] Lv.0 로그인 성공? [Python, 파이썬] (0) | 2023.03.02 |
| [프로그래머스] Lv.1 같은 숫자는 싫어 [Python, 파이썬] (0) | 2023.02.16 |
| [프로그래머스] Lv.2 가장 큰 수 [Python, 파이썬] (0) | 2023.02.16 |
| [프로그래머스] Lv.1 K번째 수 [Python, 파이썬] (0) | 2023.02.16 |
Comments