반응형 전체 글252 [백준][Python] 3986번 좋은 단어 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net 코드 n = int(input()) ans = 0 for i in range(n): inp = input() stack = [] for j in inp: if len(stack) == 0: stack.append(j) else: if j == "A": if stack[-1] == "B": stack.append(j) elif stack[-1] == "A": stack.pop() elif j == "B": if stack[-1] == "A": stack.append(j) e.. 2022. 2. 14. [백준][Python] 4949번 균형잡힌 세상 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 코드 import sys while 1: inp = sys.stdin.readline().rstrip() stack = [] error = 0 if inp == ".": break else: for i in inp: if i == "(": stack.append(i) elif i == ")": if len(stack) == 0: # 스택이 비어있으면 no 출력 error = 1 break else: if stack[-1] == "(": # 가장 최.. 2022. 2. 14. [백준][Python] 22942번 데이터 체커 22942번: 데이터 체커 데이터가 조건에 맞는다면 YES, 조건에 만족하지 않는다면 NO를 출력한다. www.acmicpc.net 코드 import sys n = int(input()) circle = [] stack = [] for i in range(n): inp = sys.stdin.readline().split() a = int(inp[0])-int(inp[1]) b = int(inp[0])+int(inp[1]) circle.append([a,i,0]) # x-r값과 x+r값을 각각 원 번호와 함께 스택에 저장해준다. circle.append([b,i,1]) # 처음인지 끝인지 확인하기 위해 0 또는 1을 추가해줬다. circle.sort() for i in range(n): fir = circ.. 2022. 2. 11. [백준][Python] 10845번 큐 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 import sys from collections import deque n = int(input()) queue = deque([]) for i in range(n): com = sys.stdin.readline().split() if com[0] == 'push': queue.append(com[1]) elif com[0] == 'pop': if len(queue) == 0: print(-1) else: print(queue.popleft.. 2022. 2. 11. [백준][Python] 2800번 괄호 제거 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net 코드 from itertools import combinations inp = list(input()) stack = [] cnt = 0 com_list = [] answer = [] for i in range(len(inp)): if inp[i] == "(": stack.append([inp[i],i]) cnt = 0 elif inp[i] == ")": if cnt == 0: a = stack[-1][1] stack.pop() .. 2022. 2. 11. [백준][Python] 2493번 탑 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 코드 import sys n = int(input()) tower = list(map(int,sys.stdin.readline().split())) stack = [] ans = [] for i in range(n): while stack: if stack[-1][0] < tower[i]: stack.pop() else: break if stack: ans.append(stack[-1][1]) else: ans.append(0) stack.append([tow.. 2022. 2. 10. [백준][Python] 2346번 풍선 터뜨리기 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 코드 n = int(input()) inp = list(map(int, input().split())) index = 0 in_list = [] result = [] for i in range(1,n+1): in_list.append(i) num = inp.pop(index) # 풍선 안에 적혀있는 숫자 result.append(in_list.pop(index)) while inp: if num < 0: index = (index + num) .. 2022. 2. 10. [백준][Python] 2504번 괄호의 값 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 코드 inp = list(input()) stack = [] error = 1 for i in inp: if i == "(": stack.append(i) cnt = 0 # 괄호가 ()와 같이 연속으로 나오는지 확인하는 변수 elif i == ")": num = 0 while len(stack) != 0: a = stack.pop() if a == "(": if cnt == 0: # ()인 상황 stack.append(2) cnt = 1 error = 0 el.. 2022. 2. 10. [백준][Python] 1966번 프린터 큐 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 코드 from collections import deque num = int(input()) for i in range(num): cnt = 0 N, M = map(int,input().split()) imp = deque(list(map(int,input().split()))) while len(imp) > 0: maxi = max(imp) if imp[0] == maxi: # 처음 원소값이 최댓값이면 imp.popleft() if M == 0: # pop된 수가.. 2022. 2. 8. 이전 1 ··· 24 25 26 27 28 다음 반응형