티스토리 뷰
1. 문제
2. 정답 코드
def solution(n, lost, reserve):
# lost와 reserve에서의 중복 제거; 차집합 사용
_reserve = list(set(reserve) - set(lost))
_lost = list(set(lost) - set(reserve))
for x in _reserve:
if x-1 in _lost:
_lost.remove(x-1)
elif x+1 in _lost:
_lost.remove(x+1)
answer = n - len(_lost)
return answer
- 문제의 마지막 제한사항 때문에 가장 먼저 lost와 reserve에서의 중복을 제거해야 한다.
- remove(값): 리스트에서 첫 번째로 등장하는 값을 삭제한다.
개인적으로 정말 안 풀리던 문제였다 ㅠㅠ 집합을 사용할 생각을 못 했는데, 아래 블로그에서 집합을 사용하는 걸 보고 바로 아이디어가 떠올랐다.
[Python] 프로그래머스 - 체육복
- 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어
rain-bow.tistory.com
728x90
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 신규 아이디 추천 파이썬 정답 코드 (0) | 2023.06.13 |
---|---|
[프로그래머스] 크레인 인형뽑기 게임 파이썬 정답 코드 (0) | 2023.06.13 |
[프로그래머스] 문자열 나누기 파이썬 정답 코드 (0) | 2023.06.13 |
[프로그래머스: 코딩테스트 연습 힌트 모음집] 문자열 다루기 기본 파이썬 정답 코드 (0) | 2022.11.14 |
[프로그래머스: 코딩테스트 연습 힌트 모음집] 피보나치 수 파이썬 정답 코드 (0) | 2022.11.14 |