괄호 짝맞추기
def solution(brakets):
stack = []
for braket in brakets:
if braket == '(':
stack.append(braket)
elif braket == ')':
if not stack:
return False
else:
stack.pop()
return not stack
10진수를 2진수로 변환하기
def solution(integer):
stack = []
while integer > 0:
left = integer % 2
stack.append(str(left))
integer //= 2
answer = ''
while stack:
answer += stack.pop()
return answer
괄호 회전하기
from collections import deque
def solution(s):
answer = 0
brakets = deque(s)
length = len(s)
for _ in range(length):
stack = []
for braket in brakets:
if braket in ['(', '[', '{']:
stack.append(braket)
else:
if not stack:
stack.append(braket)
break
if braket == ')' and stack[-1] == '(':
stack.pop()
elif braket == ']' and stack[-1] == '[':
stack.pop()
elif braket == '}' and stack[-1] == '{':
stack.pop()
if not stack:
answer += 1
brakets.rotate(-1)
return answer
짝지어 제거하기
def solution(s):
stack = []
length = len(s)
for idx in range(length):
if stack and stack[-1] == s[idx]:
stack.pop()
else:
stack.append(s[idx])
return int(not stack)
주식 가격
def solution(prices):
answer = []
length = len(prices)
for idx in range(length):
tmp = 0
for i in range(idx + 1, length):
tmp += 1
if prices[idx] > prices[i]:
break
answer.append(tmp)
return answer
크레인 인형 뽑기
def solution(board, moves):
basket = []
length = len(board)
answer = 0
for move in moves:
for idx in range(length):
if board[idx][move - 1] != 0:
value = board[idx][move - 1]
if basket and basket[-1] == value:
basket.pop()
answer += 2
else:
basket.append(value)
board[idx][move - 1] = 0
break
return answer
표 편집
푸는중...
'Study > Algorithm' 카테고리의 다른 글
[코딩테스트 합격자 되기 7주차 과제] 집합 과제 (0) | 2024.02.19 |
---|---|
[코딩테스트 합격자 되기 5주차 과제] 해시 과제 (0) | 2024.02.03 |
[코딩테스트 합격자 되기(기본) 2주차 과제] 리스트/덱/딕셔너리 (1) | 2024.01.21 |
[코딩테스트 합격자 되기 2주차 과제] 배열 정리 (1) | 2024.01.12 |
[코딩테스트 합격자 되기 1주차 과제] 시간 복잡도 정리 (1) | 2024.01.07 |