티스토리 뷰

반응형

https://programmers.co.kr/learn/courses/30/lessons/42862

 

코딩테스트 연습 - 체육복

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번

programmers.co.kr

 


⊙ 문제

⊙ 제한사항

⊙ 입출력 예

⊙ 입출력 예 설명


 

⊙ 문제 접근 과정

 

문제 조건을 잘 보자 유의해야 할 점이 있다.

 

1️⃣ 체육복을 잃어버린 학생 중 여벌이 없는 학생

2️⃣ 체육복 여벌이 있는 학생 중 빌려줄 수 있는 학생(여벌 체육복이 있어도 도난당할 수 있기 때문)

 

번호에 대한조건을 주석으로 달아놨다. (#1, #2)

 

그리고 왼쪽(i-1)부터 for문if 조건문을 사용해 탐색하면 된다.

 


 

⊙ 문제 풀이

 

def solution(n, lost, reserve):
    set_lost = set(lost) - set(reserve) #1
    set_reserve = set(reserve) - set(lost) #2

    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)

⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함