프로그래머스 - 프린터 문제 요약 일반적인 프린터와 다르게 인쇄 대기물에 우선순위를 부여하여 우선순위대로 인쇄물을 출력한다. 즉, 우선 순위에 맞는 순서가 있다. 우선순위 리스트의 첫번째 요소의 값보다 큰 값을 가진 요소가 있다면 첫 번째 요소를 리스트의 가장 뒤로 옮긴다. 이 때 입력으로 주어지는 location 값에 해당하는 문서가 몇 번째로 인쇄되는지 구하여라. 생각 순서가 있기 때문에 가장 우선적으로 Stack과 Queue 자료구조를 떠올렸다. 우선 순위가 뒤로 밀릴 때, 리스트의 가장 뒤로 밀리기 때문에 deque.rotate()를 사용하면 리스트의 pop(), append() 연산에 비해 성능을 챙길 수 있겠고 생각했다. 우선 순위에 따른 문서가 몇 번째인지 알고 있어야 하기 때문에 enume..
프로그래머스 - 올바른 괄호 문제 요약 올바르게 짝지어진 괄호는 ( 뒤에 )로 닫혀야한다. 제대로 닫히지 않은 괄호는 올바른 괄호가 아니다. 생각 괄호의 순서에 맞게 값을 저장해야하기 때문에 스택을 사용한다. 스택에서 pop()연산은 효율이 좋지 못하기 때문에 이를 보완하기 위해 queue를 함께 사용한다. 코드 from collections import deque def solution(s): dq = deque(s) stack = [] ret = True while dq: v = dq.popleft() if v == "(": stack.append(v) elif v == ")" and stack and stack[-1] == "(": stack.pop() else: ret = False return ..
프로그래머스 - 같은 숫자는 싫어 문제 요약 0~9로 이루어진 배열 arr이 있을 때, 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거한다. 중복된 숫자만 제거하되, 원래 배열의 순서는 유지해야한다. 생각 set은 중복은 제거하지만, 순서를 보장하지 않기 때문에 사용할 수 없다. in으로 look up을 하기에는 처음에 나온 숫자가 나중에 다시 나올 수 있기 때문에 사용할 수 없다. 따라서 스택을 사용하여 직접 arr를 탐색하며 판단해야한다. 코드 def solution(arr): stack = [] stack.append(arr[0]) for i in range(1, len(arr)): if arr[i] != arr[i - 1]: stack.append(arr[i]) return stack 설명 값..
프로그래머스 - 기능개발 문제 요약 각 기능은 진도가 100%일 때 서비스에 반영할 수 있다. 각 기능의 개발 속도는 모두 다르다. 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발 될 수 있지만, 이 경우에 앞에 있는 기능이 배포될 때 함께 배포된다. 따라서 배포해야 하는 기능에는 순서가 있다. 문제 생각 순서가 있기 때문에 stack 혹은 queue 사용을 고려한다. 하루가 지날때마다 speeds의 값이 하나씩 증가하는 방식으로 하루가 지날때마다 개발 진척도가 결정될 것이기 때문에 반복문을 사용하고, 한번의 루프가 하루라고 생각하면 이해가 쉽다. 코드 def solution(progresses, speeds): stack = [] day = 0 cnt = 0 while len(progresses) > ..
- Total
- Today
- Yesterday
- mahout
- Elasticsearch
- heapq
- Hadoop
- Python
- Algorithm
- 파이썬
- Espher
- DFS
- oozie
- kafka
- CS
- HDFS
- DP
- 이코테
- 빅데이터
- CSAPP
- 빅데이터를지탱하는기술
- 네트워크
- cka
- elasticsaerch
- logstash
- GROK
- kubernetes
- sqoop
- 프로그래머스
- Flutter
- BOJ
- 백준
- OS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |