아이디어
- 프로그래머스에서 비슷한 문제여서 만만하게 봤는데 온갖 반례에 허덕였다.
- 포인트는 여분의 카약이 있는 팀이 부서졌을 때 자신의 것을 고쳐야 한다는 것!
- 카약을 빌려주는 순서가 있기때문에 정렬을 꼭 해줘야 한다.
- 주의 :
remove()
로 원소를 빼고 나면 index
순서가 내가 생각했던 것과 달라질 수 있음
시간 복잡도
코드
import sys
input = sys.stdin.readline
n, s, r = map(int, input().split())
s_list = list(map(int, input().split()))
r_list = list(map(int, input().split()))
k_list = []
for team in r_list:
if team in s_list:
s_list.remove(team)
else:
k_list.append(team)
for team in k_list:
if s_list == []:
break
elif team + 1 in s_list:
s_list.remove(team + 1)
elif team - 1 in s_list:
s_list.remove(team - 1)
print(len(s_list))