320x100
https://school.programmers.co.kr/learn/courses/30/lessons/42862
일단 제일 중요한 조건은 도난당하고, 여벌이 있는 학생은 빌려줄 수 없고 자신이 입는다는 것. = 그냥 일반 학생과 같음
그래서 lost, reserve에서 양쪽에 모두 있는 값은 둘 다 제거를 해 준다. list comprehension 이용
그리고 reserve 앞에서부터 전,후에 lost가 있는지 보고 있으면 lost에서 제거해준다. reserve는 어차피 loop 한 번만 돌기 때문에 제거 안해도 됨.
위까진 잘 구현했는데, reserve 앞에서부터 돌거면 _lost와 _reserve를 오름차순으로 정렬해줬어야 했다.
20개 중에서 2개만 계속 실패 뜨길래.. 정렬을 안했다.
def solution(n, lost, reserve):
# 잃어버리고, 여벌옷이 있는 사람은 자신이 입게 된다. lost, reserve 중복값 제거.
_reserve = [r for r in reserve if r not in lost]
_lost = [l for l in lost if l not in reserve]
# for문 써서 할거면 꼭 정렬하기...
_lost.sort()
_reserve.sort()
# reserve 앞에서부터 check.
for r in _reserve:
if r - 1 in _lost:
_lost.remove(r - 1)
elif r + 1 in _lost:
_lost.remove(r + 1)
return n - len(_lost)
'코딩테스트' 카테고리의 다른 글
[파이썬] 신규 아이디 추천 - 2021 KAKAO BLIND RECRUITMENT [CODING TEST #10] (0) | 2022.07.20 |
---|---|
[파이썬] 키패드 누르기 - 2020 카카오 인턴십 [CODING TEST #9] (0) | 2022.07.20 |
[파이썬] 모의고사 [CODING TEST #7] (0) | 2022.07.20 |
[파이썬] 크레인 인형뽑기 게임 - 2019 카카오 개발자 겨울 인턴십 [CODING TEST #6] (0) | 2022.07.19 |
[파이썬] 없는 숫자 더하기 - 프로그래머스 월간 코드 챌린지 시즌3 [CODING TEST #5] (0) | 2022.07.19 |
댓글