https://programmers.co.kr/learn/courses/30/lessons/42862
[오답1] → '코드 실행' 통과. '제출 후 채점하기' 정답률 33.3%
[오답2] → '코드 실행' 통과. '제출 후 채점하기' 정답률 75.0%
※ 이 때 발견한 제한사항! (역시 문제를 잘 읽어야 해,,,)
여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다.
[오답3] → '코드 실행' 통과. '제출 후 채점하기' 정답률 91.7%
[정답]
1. lost와 reserve의 차집합을 구해서 리스트 n_lost를 초기화한다.
2. reserve와 lost의 차집합을 구해서 리스트 n_reserve를 초기화한다.
( ↑제한사항의 "여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다." 를 처리해주기 위한 작업 )
3. n_lost를 i에 넣어 for문을 돌면서 i-1이 있다면 n_reserve에서 i-1를 없애주고, i+1이 있다면 n_reserve에서 i+1을 없애주고, i-1과 i+1이 n_reserve에 없다면 lost_student에 1을 더해준다.
( 옆친구들이 체육복 여분이 있으면 여분의 친구꺼를 빌리면서 여분의 친구를 reserve에서 제거하고, 옆친구들이 모두 여분이 없다면 체육복이 없고 빌리지도 못한 학생이므로 lost_student의 수를 더해준다. )
4. 결과적으로 학생 수 n에서 체육복이 없고 빌리지도 못한 학생인 lost_student를 빼주어 answer에 넣어준다.
5. answer을 return한다.
'알고리즘 공부 > 프로그래머스 > Python3' 카테고리의 다른 글
[프로그래머스] H-Index (0) | 2020.12.03 |
---|---|
[프로그래머스] 영어 끝말잇기 (0) | 2020.12.02 |
[프로그래머스] 문자열 내 마음대로 정렬하기 (0) | 2020.11.29 |
[프로그래머스] 모의고사 (0) | 2020.11.28 |
[프로그래머스] 소수 찾기 (0) | 2020.11.27 |