[Coding Test]/[백준]
[백준] 15903 파이썬(python) : 카드 합체 놀이
https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net import sys, heapq n, m = map(int, sys.stdin.readline().split()) heap = list(map(int, sys.stdin.readline().split())) #1 heapq.heapify(heap) #2 for _ in range(m): n1 = heapq.heappop(heap) #3 n2 = heapq.he..
[백준] 2075 파이썬(python) : N번째 큰 수 - heapq
https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 파이썬에서 제공하는 heapq와 입력값이 NxN으로 들어온다는 것을 활용하여 푸는 문제다. 파이썬 heapq는 최소 힙을 제공하기 때문에 한 줄을 입력받고 heapq에 push하면 최소 값이 heap[0]에 정렬된다. 두번째 줄부터 입력값과 heap[0]을 계속 비교하면서 heap[0]가 작으면 빼고 입력값을 넣는 과정을 반복하면 자연스럽게 5개의 가장 큰 숫자들만 남게 된다. (비교하고 삽입, 삭제하는..
[백준] 1417 파이썬(python) : 국회의원 선거
https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net import sys n = int(sys.stdin.readline()) vote_people = [ int(sys.stdin.readline()) for _ in range(n) ] dasom = vote_people[0] #1 candidate = vote_people[1:] #2 if n == 1: #3 print(0) else: #4 cnt = 0 candidate.sort(re..
[백준] 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..