Lv. 1, 54%
https://school.programmers.co.kr/learn/courses/30/lessons/42862
내가 제출한 코드:
def solution(n, lost, reserve):
answer = n
lost.sort()
reserve.sort()
for i in lost:
if i in reserve:
reserve.remove(i)
elif i - 1 in reserve:
reserve.remove(i - 1)
elif i + 1 in reserve and i + 1 not in lost:
reserve.remove(i + 1)
else:
answer -= 1
print(reserve)
return answer
여벌 체육복을 가져온 학생이 도난당하면 빌려줄 수 없다!!!!!
테스트 5, 12 가 통과가 안 되더니 아래 코드를 추가하니 통과ㅠ
and i + 1 not in lost
내가 제출한 코드2:
def solution(n, lost, reserve):
answer = 0
students = {}
for stu in range(1, n+1):
if stu in reserve and stu in lost: # 여벌 O 도난 O
students[stu] = 1
elif stu in reserve and stu not in lost: # 여벌 O 도난 X
students[stu] = 2
elif stu not in reserve and stu in lost: # 여벌 X 도난 O
students[stu] = 0
else:
students[stu] = 1
print(students) # {1: 2, 2: 0, 3: 2, 4: 0, 5: 2}
for stu in students:
if students[stu] == 0: # 나만 체육복 업숴..
if stu == 1: # 내가 1번
if students[stu+1] == 2: # 뒷친구 있으면 내놔
students[stu+1] -= 1
students[stu] += 1
elif stu == len(students): # 내가 꼴찌번
if students[stu-1] == 2: # 앞친구 있으면 내놔
students[stu-1] -= 1
students[stu] += 1
else:
if students[stu-1] == 2: # 앞친구 있으면 내놔
students[stu-1] -= 1
students[stu] += 1
elif students[stu+1] == 2: # 뒷친구 있으면 내놔
students[stu+1] -= 1
students[stu] += 1
print(students) # {1: 1, 2: 1, 3: 1, 4: 1, 5: 2}
for stu in students:
if students[stu] > 0:
answer += 1
return answer
print(solution(5, [2, 4], [1, 3, 5])) # 5
👍
'코딩테스트' 카테고리의 다른 글
코딩테스트 연습_2016년 (1) | 2023.06.02 |
---|---|
코딩테스트 연습_2022 KAKAO_성격 유형 검사하기 (7) | 2023.05.18 |
2021 KAKAO_신규 아이디 추천_정규표현식 (0) | 2023.05.03 |
코딩테스트 입문_겹치는 선분의 길이 (2) | 2023.05.03 |
코딩테스트 연습_2023 KAKAO 개인정보 수집 유효기간_zfill() (1) | 2023.04.28 |