본문 바로가기
반응형

스택8

#11 [파이썬] 백준 2841번 문제: 외계인의 기타 연주 www.acmicpc.net/problem/28412841번: 외계인의 기타 연주첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째 정수www.acmicpc.net import sys N, P = map(int, input().split()) cnt = 0 lst = [[] for _ in range(7)] for i in range(N): n, p = map(int, sys.stdin.readline().split()) if not lst[n-1]: lst[n-1].append(p) cnt += 1 else: while lst[n-1] .. 2021. 4. 13.
#10 [파이썬] 백준 4949번 문제: 균형잡힌 세상 www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net while True: s = input() if s == '.': break tmp = [] result = True for j in s: if j == "(" or j == "[": tmp.append(j) elif j == ")": if not tmp or tmp[-1] == "[": result = False break elif tmp[-1] == "(": tmp.pop() elif j ==.. 2021. 4. 7.
#9 [파이썬] 백준 9012번 문제: 괄호 www.acmicpc.net/problem/9012 n = int(input()) for i in range(n): a = list(input()) tmp = [] cnt = 0 for j in a: if j == "(": tmp.append(j) elif j == ")": if not tmp: print("NO") cnt = 1 break else: tmp.pop() if not tmp and cnt == 0: print("YES") elif len(tmp) != 0 and cnt == 0: print("NO") 1. Solution 리스트 a내의 "("와 ")"의 개수가 다른 경우 또는 a의 첫 원소가 ")"인 경우는 NO이다. 먼저 "("와 ")"의 개수를 체크하기 위해, tmp라는 리스트를 만든 .. 2021. 4. 7.
#7 [파이썬] 백준 10828번 문제: 스택 www.acmicpc.net/problem/1082810828번: 스택첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import sys n = int(input()) stack = [] for i in range(n): command = sys.stdin.readline().strip() if command.split()[0] == 'push': stack.append(command.split()[1]) elif command == 'top': if not stack: print('-1') else: print.. 2021. 4. 6.
728x90
반응형