[프로그래머스] Python 체육복 Level1 - 탐욕법(Greedy)

swb·2024년 1월 24일

프로그래머스

목록 보기
11/23

문제 바로가기

접근 방법

  1. 잃어버린 학생과 여분이 있는 학생 중 중복되는 학생들을 제거해 준다.

  2. 전체 학생 수에서 잃어버린 학생 수를 빼준다.
    -> 수업을 들을 수 있는 학생의 수인 것이다. 예를 들면 전체 학생 수가 5명인데 체육복을 잃어버린 학생 수가 3명이라면 수업을 들을 수 있는 학생은 총 2명이다.

  3. 앞에 있는 학생, 뒤에 있는 학생, 본인을 나눠서 확인한다.

코드

def solution(n, lost, reserve):    
    for i in reserve:
        if i in lost:
            reserve.remove(i)
            lost.remove(i)

    lost.sort()
    student = n - len(lost)

	for i in lost:
        if i - 1 in reserve:
            reserve.remove(i - 1)
            student += 1
        elif i + 1 in reserve:
            reserve.remove(i + 1)
            student += 1
        elif i in reserve:
            reserve.remove(i)
            student += 1
    
    return student
profile
개발 시작

0개의 댓글