자료 구조 42

백준(Python) 9012번 괄호 풀이

Python으로 구현한 9012번 괄호 문제 풀이입니다. https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net t = int(input()) for _ in range(t) : data = list(input()) open = 0 for d in data : if d == '(' : open += 1 else : open -= 1 if open 0..

백준(Python) 1406번 에디터 풀이

Python으로 구현한 1406번 에디터 문제 풀이입니다. https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net import sys input = sys.stdin.readline data = list(input().rstrip()) temp = [] n = int(input()) for _ in range(n) : order = list(input().split()) if order[0] == 'L' : # 커서를 왼쪽으로 한 칸 이동 if data..

백준(Python) 10866번 덱 풀이

Python으로 구현한 10866번 덱 문제 풀이입니다. https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net from collections import deque import sys input = sys.stdin.readline n = int(input()) q = deque([]) for _ in range(n) : order = list(input().split()) if order[0] == 'push_front' : # 정..

백준(Python) 10845번 큐 풀이

Python으로 구현한 10845번 큐 문제 풀이입니다. https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) data = [] for _ in range(n) : order = list(input().split()) if len(order) == 2 : # 'push X'일 경우 data.append(int(order[1])) elif..

백준(Python) 10828번 스택 풀이

Python으로 구현한 10828번 스택 문제 풀이입니다. https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) q = [] for _ in range(n) : order = list(input().split()) if len(order) == 2 : # push X 일경우 insert_value = int(order[1]) q.app..

백준(Python) 10815번 숫자 카드 풀이

Python으로 구현한 10815번 숫자 카드 문제 풀이입니다. https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net n = int(input()) card = list(map(int, input().split())) m = int(input()) data = list(map(int, input().split())) card.sort() def binary_search(value, start, end) : global ..

백준(Python) 10816번 숫자 카드 2 풀이

Python으로 구현한 10816번 숫자 카드 2 문제 풀이입니다. https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net from bisect import bisect_left, bisect_right n = int(input()) data = list(map(int, input().split())) data.sort() m = int(input()) target = list(map(int, input().split..

백준(Python) 1920번 수 찾기 풀이

Python으로 구현한 1920번 수 찾기 문제 풀이입니다. https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net n = int(input()) data = list(map(int, input().split())) m = int(input()) target = list(map(int, input().split())) data.sort() def binary_search(data, t, start, en..

백준(Python) 3190번 뱀 풀이

Python으로 구현한 3190번 뱀 문제 풀이입니다. https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net n = int(input()) k = int(input()) data = [[0] * (n + 1) for _ in range(n + 1)] # 맵 정보 info = [] # 방향 회전 정보 # 맵 정보(사과 있는 곳은 1로 표시) for _ in range(k): a, b = map(int, input().split()) data[a][b] = 1..

백준(Python) 12034번 김인천씨의 식료품가게 (Large) 풀이

Python으로 구현한 12034번 김인천씨의 식료품가게 (Large) 문제 풀이입니다. https://www.acmicpc.net/problem/12034 12034번: 김인천씨의 식료품가게 (Large) 입력의 첫 번째 라인(줄)은 테스트 사례의 케이스의 수 T를 나타냅니다. 이후의 라인은 T개의 테스트 케이스가 이어집니다. 각 테스트 케이스는 두 줄로 구성됩니다. 첫 번째 줄에는 INU 식료품가 www.acmicpc.net t = int(input()) for tc in range(1, t + 1) : n = int(input()) data = sorted(map(int, input().split()), reverse=True) result = [] while data : price = data.p..