일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Stack
- 파이썬
- sql
- 코테
- coding
- import re
- 완전탐색
- 연습문제
- BFS
- python
- 데이터분석
- CodingTest
- 프로그래머스
- 시간복잡도
- Level2
- itertools
- level4
- coding test
- Queue
- lv4
- programmers
- lambda
- join
- time complexity
- mysql
- collections
- 코딩테스트
- 코딩
- counter
- 조합
- 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..
list의 행과 열을 바꾸기 위해 numpy 를 이용해서 transpose 해주고 stack을 이용해서 답 구하기 ! Question 게임 화면의 격자의 상태가 담긴 2차원 배열 board와 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열 moves가 매개변수로 주어질 때, 크레인을 모두 작동시킨 후 터트려져 사라진 인형의 개수를 return 하도록 solution 함수를 완성해주세요. Code import numpy as npdef solution(board, moves): answer = 0 stack = [] board = np.array(board).T board = (board).tolist() board = [[i for i in row if i!=0] for..
시간 초과로 stack 이용해서 O(n)로 풀기. Question 상수에게 전해지는 재료의 정보를 나타내는 정수 배열 ingredient가 주어졌을 때, 상수가 포장하는 햄버거의 개수를 return 하도록 solution 함수를 완성하시오. Code : Time Complexity O(n) def solution(ingredient): answer = 0 stack = [] for i in ingredient: # O(n) stack.append(i) # O(1) if stack[-4:] == [1,2,3,1] : answer += 1; del stack[-4:] # O(1) return answer Code 2 : Time Complexi..