[프로그래머스] 체육복 (Python) - 그리디

Yebin Lee·2022년 6월 27일
0

코테준비

목록 보기
1/12

아침 일찍 일어나 7시에 집을 나와 자취방에 왔다. 출근 시간인 지옥철이라 힘들어 죽는 줄 알았다 🥲 오자마자 미리 세워둔 방학 계획대로 코딩테스트 준비를 위해 프로그래머스에서 문제를 하나 풀었다. Level1 인데도 결코 쉽지않다 ㅠㅠ 더 성장해야지... ❗


프로그래머스 [체육복] 문제 보기


물론 한 번에 성공하지는 못했다. 규칙 중 하나를 넘겨짚고 내 마음대로 풀었기 때문. 허허

제한사항 중 다음과 같은 규칙이 있었는데 간과했다.
이로써 처음 제출 후 채점 결과는 정확성 65% ... (스크린샷을 찍는다는걸 깜빡했다)


프로그래머스 [체육복] 문제 풀이


def solution(n, lost, reserve):
    answer = 0
    answer = n-len(lost)
    
    for i in range(0, len(lost)):
        for j in range(0, len(reserve)):
            if(lost[i]==reserve[j]):
                answer+=1
                lost[i]=0
                reserve[j]=0
                break
    
    lost.sort()
    reserve.sort()
    
    for i in range(0, len(lost)):
        if(lost[i]!=0):
            for j in range(0, len(reserve)):
                if (reserve[j]==0): continue
                elif(reserve[j]==lost[i]-1 or reserve[j]==lost[i]+1):
                    answer+=1
                    reserve[j]=0
                    break
                    
    return answer

앞서 간과했던 규칙을 적용하고자 코드를 고쳤다. 다음 글부터는 수정 전 코드와 수정 후 코드를 모두 첨부할 계획이다.


다른 풀이 중에 set 을 사용한 간단한 풀이가 있던데, 기회가 된다면 (일단 오늘 말고) set 을 사용한 다른 풀이를 스스로 생각해보는 시간을 가져야겠다.

안녕 !

0개의 댓글