반응형
https://school.programmers.co.kr/learn/courses/30/lessons/42862
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
문제 설명이 명확하지 않고 좀 난해한 감이 있다.
- 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다.
- 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다.
해당 줄이 핵심이다. 이 문제에만 특히 질문이 저렇게 많은 이유도 해당 부분에 대한 처리를 해주지 않고 제출을 한 사람이 대부분이기 때문일거다.
def solution(n, lost, reserve):
lost.sort()
# 체육복을 도난당한 학생 중 여벌 체육복이 있는 경우 빌려주기
for item in lost[:]:
if item in reserve:
lost.remove(item)
reserve.remove(item)
# 체육복을 빌리지 못한 학생에 대해 앞번호나 뒷번호 학생에게 빌리기
for item in lost:
if item - 1 in reserve:
reserve.remove(item - 1)
elif item + 1 in reserve:
reserve.remove(item + 1)
else:
n -= 1 # 체육수업을 들을 수 없는 학생 수를 감소
return n
'프로그래머스 > lv.1' 카테고리의 다른 글
완주하지 못한 선수 (0) | 2024.01.27 |
---|---|
대충 만든 자판 (0) | 2024.01.27 |
숫자 짝꿍 (0) | 2024.01.26 |
로또의 최고 순위와 최저 순위 (0) | 2024.01.25 |
다트게임 (1) | 2024.01.25 |