[Coding Test]
[백준] 15815 파이썬(python) : 천재 수학자 성필 - 후위표기식
https://www.acmicpc.net/problem/15815 15815번: 천재 수학자 성필 길이가 100이 넘지 않는 수식이 예제 입력과 같이 공백 없이 입력된다. 수식은 0부터 9까지의 숫자와 연산자 '+', '-', '*', '/' 로만 이루어져 있다. 또한, 수식의 계산 중간 과정의 모든 결과는 항상 2 www.acmicpc.net import sys string = sys.stdin.readline().rstrip() stack = [] for i in range(len(string)): if string[i].isdigit(): #1 stack.append(string[i]) else: #2 if stack: n2 = int(stack.pop()) n1 = int(stack.pop())..
[백준] 2257 파이썬(python) : 화학식량
https://www.acmicpc.net/problem/2257 2257번: 화학식량 첫째 줄에 화학식이 주어진다. 화학식은 H, C, O, (, ), 2, 3, 4, 5, 6, 7, 8, 9만으로 이루어진 문자열이며, 그 길이는 100을 넘지 않는다. www.acmicpc.net 처음엔 숫자를 저장할 변수를 여러개 지정해서 값을 일일히 기억해줘야 한다고 생각했는데 아니었다. 일련의 계산을 끝낸 숫자들을 다시 stack에 집어넣는 방식으로 해야지 닫는 괄호 ) 가 나온뒤 숫자가 나와도 또는 알파벳이 나와도 모두 일괄적으로 계산할 수 있다. import sys string = list(sys.stdin.readline().rstrip()) alpha = { 'H' : 1, 'C' : 12, 'O' : 1..
[백준] 17952 파이썬(python) : 과제는 끝나지 않아!
https://www.acmicpc.net/problem/17952 17952번: 과제는 끝나지 않아! 성애는 이번 학기에 전공을 정말 많이 듣는다. 이로 인해 거의 매일을 과제를 하면서 보내고 있다. 그런데도 과제가 줄어들 기미가 보이지 않는데, 바로 분단위로 과제가 추가되고 있기 때문이 www.acmicpc.net 실패한 코드) import sys n = int(sys.stdin.readline()) stack, cnt = [], 0 for _ in range(n): char = list(map(int, sys.stdin.readline().split())) if char != [0] and char[2]-1 != 0: stack.append([char[1], char[2]-1]) elif stack..
[백준] 11899 파이썬(python) : 괄호 끼워넣기 - 필요한 괄호 개수 세기
https://www.acmicpc.net/problem/11899 11899번: 괄호 끼워넣기 첫 번째 줄에 S를 올바른 괄호열으로 만들기 위해 앞과 뒤에 붙여야 할 괄호의 최소 개수를 출력합니다. 불가능한 경우는 주어지지 않습니다. www.acmicpc.net import sys string = sys.stdin.readline().rstrip() stack, cnt = [], 0 #1 for char in string: if char == '(': #2 stack.append(char) else: if stack and stack[-1] == '(': #3 stack.pop() elif not stack: #4 cnt += 1 cnt += len(stack) #5 print(cnt) #1 : sta..
[백준] 2800 파이썬(python) : 괄호 제거
2800번 : 괄호 제거 import sysfrom itertools import combinationsstring = sys.stdin.readline().rstrip()idx_stack, stack, answer = [], [], set() #1for idx, v in enumerate(list(string)): #2 if v == '(': #3 stack.append(idx) elif v == ')': #4 start = stack.pop() end = idx idx_stack.append([start, end])for i in range(1, len(idx_stack)+1): #5 for j in combinations(idx_..
[백준] 16210 파이썬(python) : PPAP
https://www.acmicpc.net/problem/16120 16120번: PPAP 첫 번째 줄에 문자열이 주어진다. 문자열은 대문자 알파벳 P와 A로만 이루어져 있으며, 문자열의 길이는 1 이상 1,000,000 이하이다. www.acmicpc.net PPAP에서 P가 PPAP로 바뀔 수 있다고 했다. 그렇다면 경우는 4가지가 나온다. 1. (PPAP)PAP 2. P(PPAP)AP 3. PPA(PPAP) 4. PPAP 이 4가지를 고려하며 코드를 짜야한다. import sys string = sys.stdin.readline().rstrip() stack = [] ppap = [ 'P', 'P', 'A', 'P' ] #1 for i in range(len(string)): stack.append..