일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- import re
- time complexity
- tableau
- 완전탐색
- 코테
- programmers
- Queue
- sql
- Level2
- level4
- 코딩테스트
- 조합
- coding
- 프로그래머스
- hackerrank
- itertools
- Stack
- join
- cte
- 파이썬
- coding test
- lambda
- mysql
- python
- collections
- counter
- AARRR
- 코딩
- lv4
- Growth hacking
- Today
- Total
목록Stack (8)
ror_coding
문제에서 요구한 풀이 방식을 따라서 풀자. Question "균형잡힌 괄호 문자열" p가 매개변수로 주어질 때, 주어진 알고리즘을 수행해 "올바른 괄호 문자열"로 변환한 결과를 return 하도록 solution 함수를 완성해 주세요.1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열 v에 대해 1단계부터 다시 수행합니다. 3-1. 수행한 결과 문자열을 u에 이어 붙인 후 반환합니다. 4. 문자열 u가 "올바른 괄호 문자열"이 아니라면 아래 과정을 수행합니다..
greedy algorithm (탐욕법)은 stack을 이용하여 해결하기 ! Question 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다.예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다.문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 2자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 ..
시간복잡도 줄이는 코드가 필요하다 ! 따라서 stack을 사용하기 ! Question 정수로 이루어진 배열 numbers가 있습니다. 배열 의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는 수를 뒷 큰수라고 합니다. 정수 배열 numbers가 매개변수로 주어질 때, 모든 원소에 대한 뒷 큰수들을 차례로 담은 배열을 return 하도록 solution 함수를 완성해주세요. 단, 뒷 큰수가 존재하지 않는 원소는 -1을 담습니다. Code def solution(numbers): answer = [-1]*len(numbers) stack = [] for idx, num in enumerate(numbers): while stack and num..
from collections import deque를 사용하여 우선 순위를 제거 !now에 넣어서 비교하고 다시 queue 뒤에 넣는 방법 생각을 못 했다..! Question 현재 실행 대기 큐(Queue)에 있는 프로세스의 중요도가 순서대로 담긴 배열 priorities와, 몇 번째로 실행되는지 알고싶은 프로세스의 위치를 알려주는 location이 매개변수로 주어질 때, 해당 프로세스가 몇 번째로 실행되는지 return 하도록 solution 함수를 작성해주세요. Point index를 번호를 부여.if 문 ) queue의 맨 앞을 now로 넣고 now의 값과 queue안에 있는 모든 값들 중 어느 하나라도 now 값보다 크면 다시 queue 맨 뒤에 추가함. ( cycle처럼 도는 느낌 )else..
from collections import dequeStack (스택)Queue (큐) from collections import dequeq = deque([1,2,3], maxlen = 5) # 크기 고정.# 추가.q.append(4) # [1,2,3,4]q.appendleft(0) # [0,1,2,3,4]# 제거 ( = 쓰면 제거된 값을 반환)q.pop() # [0,1,2,3]q.popleft() # [1,2,3]# 확장q.extend([4,5]) # [1,2,3] => [1,2,3,4,5]q.extendleft([4,5]) # [1,2,3] => [5,4,1,2,3]# 회전q.rotate(1) # [1,2,3] => [3,1,2]
stack.pop() 사용하기 ! index 조절 때문에 고민 좀 했다..올바른 괄호, 짝지어 제거하기 둘 다 같은 문제라 같이 기록한다. Question : 올바른 괄호 - 12909 '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. Code def solution(s): stack = [] for i in s: if not stack : stack.append(i); continue if stack[-1] =='(' and i==')' : stack.pop() else : stack.appen..