일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 코딩테스트
- boolean
- 함수화
- 가이드
- 매직 넘버
- 가독성
- 파이썬
- deque
- 대소 비교
- 중첩문
- 커리어
- 함수
- 부등호
- 탈출 조건
- 변수명
- ZIP
- 중첩
- 2020 채용
- permutations
- max-heap
- 조합
- 그리디
- 중간 변수
- 힙
- 프로그래머스
- enumerate
- min heap
- 스택/큐
- John Sonmez
- 임시 변수
- Today
- Total
목록변수명 (10)
Better Code, Better Life
문제 풀이 쇠막대기가 중첩될 수록 조각이 많아진다. "()"를 임의의 기호로 치환해 레이저 포인트를 지정해주자. 그리고 중첩되면 레이저 포인트로 생기는 쇠막대기 수를 증가시키고, 쇠막대기 끝에 도달하면 그 수를 감소시키자. 쇠막대기와 레이저의 표현이 "(" 와 ")"만으로 되어 있기 때문에 문제를 이해하는데 오래 걸렸다. 직접 구현 시, 이보다 더 나은 방식으로 추상화를 하자... 클린 코드 작성법 코드에는 매직 문자열, 매직 넘버가 없어야 좋다. 숫자 같은 경우 0과 1만이 적절하다. 이조차도 상수 이름을 지정하면 가독성이 올라간다. "(" 과 ")"에 적절한 이름을 붙여, 코드 이해도를 높이자. 뜻이 모호한 arrangement 를 bar_signs로 바꿔주자. 이해가 쉬워진다. 해답 코드 BAR_S..
문제 풀이 먼저 기존의 인덱스가 몇번째 순서로 프린트 되는지 알아내야 하기 때문에 기존 인덱스를 묶어 저장합니다. 파이썬 리스트는 첫번째 원소를 빼낼 때(pop) 비용이 많이 듭니다. 따라서 이를 queue 자료 구조인 collections 의 deque를 이용합니다. 아래 링크를 보면 deque의 시간복잡도를 알 수 있습니다. 그 다음부터는 출력물이 어떤 순서로 뽑히는지 알아내는 로직을 세웁니다. 프린터 출력물 상단부터 제일 우선순위가 높은지 확인합니다. max_priority = get_max_priority(indexed_priority_deque) 맞으면 출력순서 리스트(print_order_list)에 저장합니다. 아니면 출력물 하단에 삽입합니다. 마지막으로 목표 출력물인 location이 몇 ..