📚 문제 입력 출력 예제 입력 1 )))()예제 출력 1 3예제 입력 2 )(()예제 출력 2 2예제 입력 3 ))()((예제 출력 3 4예제 입력 4 )(()(()))예제 출력 4 1🧑🏻💻 풀이 과정 입력 받은 괄호를 하나씩 꺼내면서 (이면 arr에 저장하자. )이면, arr의 길이가 1과 같다면 올바른 괄호니까 arr에서 pop해주고, arr의 길이가 0이면 (가 없었단 뜻으로 올바르지 않은 괄호이다. cnt를 1 증가시키자. arr에 (가 남아있을 수 있으니까 cnt + len(arr)를 반환하자. 그게 곧 앞과 뒤에 붙여야 할 괄호의 최소 개수이다. def process(word): arr = [] cnt = 0 for i in word: if i == '(': arr.append..
📚 문제 입력 출력 예제 입력 1 14 push 1 push 2 top size empty pop pop pop size empty pop push 3 empty top예제 출력 1 2 2 0 2 1 -1 0 1 -1 0 3예제 입력 2 7 pop top push 123 top pop top pop예제 출력 2 -1 -1 123 123 -1 -1🧑🏻💻 풀이 과정 n번동안 반복하며 명령어(command)를 입력받자. size면 stack의 길이를 출력하자. empty면 stack이 []와 같다면 1 출력, 아니면 0을 출력하자. top이면 stack이 []와 같다면 -1 출력, 아니면 stack의 마지막 요소를 출력하자. pop이면 stack이 []와 같다면 -1 출력, 아니면 stack.pop()을 출..
📚 문제 입력 출력 예제 입력 1 6 (())()) (((()())() (()())((())) ((()()(()))(((())))() ()()()()(()()())() (()((())()(예제 출력 1 NO NO YES NO YES NO예제 입력 2 3 (( )) ())(()예제 출력 2 NO NO NO🧑🏻💻 풀이 과정 입력 받은 괄호 문자열(s)에서 괄호를 하나씩 꺼내서 "("면 arr에 append 및 ans +1, ")"면 arr에서 pop 및 ans -= 1하자. ")"일 때, arr의 길이가 0이라면 "("가 없는 괄호를 닫은 것이므로, 올바르지 못한 괄호이다. 바로 NO를 반환하자. (if len(arr) == 0: return 'NO') 반복을 마치고, ans가 0이면 올바른..
문제 백준 5397 - 키로거 코드 test_case = int(input()) for _ in range(test_case): left_stack = [] right_stack = [] data = input() for i in data: if i == '-': if left_stack: left_stack.pop() elif i == '': if right_stack: left_stack.append(right_stack.pop()) else: left_stack.append(i) left_stack.extend(reversed(right_stack)) print(''.join(left_stack))
- Total
- Today
- Yesterday
- Algorithm
- 문자열
- 리팩토링
- MySQL
- webflux
- leetcode
- mysql 8.0
- 스프링 부트
- 코테
- Spring
- 김영한
- 자료구조
- 파이썬
- 그리디
- Real MySQL
- 스프링
- 구현
- 노마드코더
- 북클럽
- 백준
- 코틀린
- kotlin
- 데이터베이스
- 정렬
- 스프링부트
- 릿코드
- 인프런
- spring boot
- 노마드
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |