Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 부등호
- 함수
- 탈출 조건
- 대소 비교
- 조합
- 파이썬
- 힙
- 코딩테스트
- 가이드
- 커리어
- 임시 변수
- boolean
- min heap
- 중간 변수
- permutations
- enumerate
- 프로그래머스
- 함수화
- max-heap
- 가독성
- 중첩
- 중첩문
- 그리디
- 2020 채용
- 스택/큐
- ZIP
- John Sonmez
- deque
- 매직 넘버
- 변수명
Archives
- Today
- Total
Better Code, Better Life
체육복 - 프로그래머스 - 파이썬 풀이 본문
문제 풀이
-
먼저 여벌 체육복을 가져온 학생이 체육복을 도난당한 경우를 해결해줍니다. 이는 lost, reserve 사이에서 중복을 제거하면 됩니다.
filter_duplicate
-
여벌 체육복을 가져온 학생들의 번호를 가지고 잃어버린 학생들에게 왼쪽번호부터 차례대로 빌려줍니다.
lend_clothes_from_nearby_student
-
전체 학생 수에서 여전히 못빌린 학생 수를 빼면 정답이 나옵니다.
클린 코드 작성법
-
임의의 두개의 리스트에 대해서 행하는 로직의 경우 list1, list2 처럼 변수명을 지어도 괜찮습니다.
-
for문 내에서 복잡한 로직을 행하게 된다면, 이 부분을 따로 함수를 통해 for문 중첩 수를 줄이는 것이 좋습니다.
lend_clothes_from_nearby_student
해답 코드
def solution(n, lost, reserve):
reserve_students = filter_duplicate(reserve, lost)
lost_students = filter_duplicate(lost, reserve)
for student_num in reserve_students:
lost_students = lend_clothes_from_nearby_student(student_num, lost_students)
answer = n - len(lost_students)
return answer
def filter_duplicate(list1, list2):
result = []
for element in list1:
if element not in list2:
result.append(element)
return result
def lend_clothes_from_nearby_student(student_num, lost_students):
left_student_num = student_num - 1
right_student_num = student_num + 1
if left_student_num in lost_students:
lost_students.remove(left_student_num)
elif right_student_num in lost_students:
lost_students.remove(right_student_num)
return lost_students
도움이 됐다면 공감버튼을 눌러주세요! 질문이 있다면 댓글 달아주세요!
코딩테스트 연습 - 체육복 | 프로그래머스
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체
programmers.co.kr
'Coding Test > Programmers' 카테고리의 다른 글
조이스틱 - 프로그래머스 - 파이썬 풀이 (0) | 2020.08.05 |
---|---|
큰 수 만들기 - 프로그래머스 - 파이썬 풀이 (0) | 2019.10.13 |
카펫 - 프로그래머스 - 파이썬 풀이 (0) | 2019.08.26 |
숫자 야구 - 프로그래머스 - 파이썬 풀이 (0) | 2019.08.22 |
소수 찾기 - 프로그래머스 - 파이썬 풀이 (2) | 2019.08.19 |
Comments