입출력 예
5 | [2, 4] | [1, 3, 5] | 5 |
5 | [2, 4] | [3] | 4 |
3 | [3] | [1] | 2 |
풀이
def solution(n, lost, reserve):
# 1. Set을 만든다
reserve_only = list(set(reserve) - set(lost))
lost_only = list(set(lost) - set(reserve))
reserve_only.sort();
# 2. 여분을 기준으로 앞뒤를 확인하여 체육복을 빌려준다.
for reserve in reserve_only:
front = reserve - 1
back = reserve + 1
if front in lost_only:
lost_only.remove(front)
elif back in lost_only:
lost_only.remove(back)
#3. 최대한 나눠준 뒤에 lost에 남아있는 학생들은 체육복이 없는 학생들이다.
return n - len(lost_only)
참고
https://coding-grandpa.tistory.com/100
https://www.youtube.com/watch?v=yiNIJuVvSbY
'개발자 성장 기록 > 코테' 카테고리의 다른 글
[백준] 1193 Python (0) | 2022.08.23 |
---|---|
[백준] 25304 번 Python (0) | 2022.08.22 |
[프로그래머스]소수찾기 Python (0) | 2022.08.20 |
[프로그래머스]전화번호 목록 Python (0) | 2022.08.19 |
[프로그래머스]최소직사각형 Python (0) | 2022.08.18 |