일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2020 채용
- 함수화
- 힙
- 중첩
- permutations
- enumerate
- John Sonmez
- 탈출 조건
- 그리디
- ZIP
- 커리어
- 코딩테스트
- 중첩문
- 조합
- 부등호
- deque
- 변수명
- 스택/큐
- boolean
- 파이썬
- 임시 변수
- 프로그래머스
- max-heap
- 가이드
- 함수
- min heap
- 대소 비교
- 매직 넘버
- 중간 변수
- 가독성
- Today
- Total
목록그리디 (3)
Better Code, Better Life
문제 풀이 people을 가벼운 순으로 sort 합니다. 이후 제일 무거운 사람을 태운 후, 제일 가벼운 사람을 태울 수 있으면 태웁니다. 모든 사람들이 탈 때까지 2번의 로직을 반복합니다. list 자료형의 경우 0번째 index pop의 비용이 O(n)이므로 deque자료형을 이용합니다. 클린 코드 작성법 문제 이해를 위한 적절한 변수명을 짓습니다. capacity, heaviest_person, lightest_person if capacity_left_for_lightest_person(people, capacity) 처럼 함수을 이용해 가독성을 높일 수 있씁니다. if 다음에 boolean 값을 return 하는 함수를 작성합니다. 값의 비교시 작은 값은 왼쪽, 큰 값은 오른쪽에 놓습니다. li..

문제 풀이 주어진 number 에서 순차적으로 각 숫자가 넣을만한 숫자인지 비교해봅니다. 앞으로 넣어야 할 숫자가 스택에 있는 마지막 숫자보다 크다면 마지막 숫자를 pop 해줍니다. 이 때 k(제거해야 할 숫자의 수)가 0보다 커야 합니다. 또한 스택이 비어있다면 넘어갑니다. 이 로직을 pop_until_condition 에 구현합니다. 1번에서 넣을만한 숫자는 다 candidates에 넣었습니다. 이제 k가 0이 될 때까지 숫자를 제거해주어야 합니다. pop_until_zero candidates 안의 숫자들을 하나의 문자열로 합치면 정답을 구할 수 있습니다. 클린 코드 작성법 stack 과 같은 자료구조를 명시하는 변수명 대신 candidates 처럼 구체적으로 변수가 의미하는 바가 드러나게 변수명을..

문제 풀이 먼저 여벌 체육복을 가져온 학생이 체육복을 도난당한 경우를 해결해줍니다. 이는 lost, reserve 사이에서 중복을 제거하면 됩니다. filter_duplicate 여벌 체육복을 가져온 학생들의 번호를 가지고 잃어버린 학생들에게 왼쪽번호부터 차례대로 빌려줍니다. lend_clothes_from_nearby_student 전체 학생 수에서 여전히 못빌린 학생 수를 빼면 정답이 나옵니다. 클린 코드 작성법 임의의 두개의 리스트에 대해서 행하는 로직의 경우 list1, list2 처럼 변수명을 지어도 괜찮습니다. for문 내에서 복잡한 로직을 행하게 된다면, 이 부분을 따로 함수를 통해 for문 중첩 수를 줄이는 것이 좋습니다. lend_clothes_from_nearby_student 해답 코..