문제
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
풀이
- lost와 reserve 값이 공통으로 존재하는 것은 제외시켜줘야하기 때문에, set을 활용해서 차집합 구하기
- 반복문을 돌면서 index가 작은 것(i-1)부터 빌려주고, 만약에 i-1이 없다면 i+1의 학생을 빌려준다.
코드
def solution(n, lost, reserve):
lost1 = set(lost)-set(reserve)
reserve1 = set(reserve) - set(lost)
for i in reserve1:
if i-1 in lost1:
lost1.remove(i-1)
elif i+1 in lost1:
lost1.remove(i+1)
return n - len(set(lost1))
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] Lv1. 크레인 인형뽑기 게임 (0) | 2021.05.14 |
---|---|
[Programmers] Lv1. 키패드 누르기 (0) | 2021.05.13 |
[Programmers] Lv1. K번째수 (0) | 2021.05.12 |
[Programmers] Lv1. 완주하지 못한 선수 (0) | 2021.05.12 |
[Programmers] Lv1. 폰켓몬 (0) | 2021.05.12 |
댓글