코딩테스트

코딩테스트 연습_체육복

끈끈 2023. 5. 7. 22:39

Lv. 1, 54%

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 


 

내가 제출한 코드:

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

 

👍