honey_pot
[python] 체육복 본문
https://programmers.co.kr/learn/courses/30/lessons/42862
def solution(n, lost, reserve):
set_reserve = set(reserve)-set(lost)
set_lost = set(lost) - set(reserve)
for i in set_reserve :
if i-1 in set_lost:
set_lost.remove(i-1)
elif i+1 in set_lost:
set_lost.remove(i+1)
return n - len(set_lost)
조건중에
여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다.
이때 이 학생은 체육복을 하나만 도난당했다고 가정하며,
남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다.
이 부분을 체크하기 위해
set을 이용해 reserve와 lost에 존재하는 중복을 제거하고 서로의 차집합을 구해야 한다.
set_reserve의 숫자의 왼쪽부터 set_lost집합에 있는 숫자인지 확인해서 lost의 수를 줄인다.
전체 학생수 n에서 최종 set_lost의 길이를 뺀다
'문제 풀이' 카테고리의 다른 글
[python] 124 나라의 숫자 (0) | 2021.09.10 |
---|---|
[python] 소수 만들기 (0) | 2021.09.09 |
[python] 크레인 인형뽑기 게임 (0) | 2021.09.09 |
[python] 로또의 최고 순위와 최저 순위 (0) | 2021.09.09 |
[python] 비밀지도 (0) | 2021.09.09 |
Comments