728x90

분류 전체보기 274

백준 11279 최대 힙

11279번: 최대 힙 (acmicpc.net) 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net import heapq import sys N = int(input()) heap = [] for i in range(N): x = int(sys.stdin.readline()) if x == 0: if not heap: print(0) else: print(heapq.heappop(heap)[1]) else: heapq.heappush(heap, (-x, x)) 힙.이라는 것을 처음 접해보았읍니..

백준 15650 N과 M(2) - 백트래킹문제

15650번: N과 M (2) (acmicpc.net) 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net N과 M문제와 매우 비슷 but 오름차순만 정렬해야된다는 것이 달랐음. N,M = map(int, input().split()) lst = [] visited = [False] * N def dfs(depth): if depth == M: print(' '.join(map(str, lst))) return for i in range(N): if not visited[i]: for j in range(i+1)..

백준 3986 좋은 단어

3986번: 좋은 단어 (acmicpc.net) 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net import sys result = 0 N = int(input()) for i in range(N): stack = list(sys.stdin.readline().strip()) temp = [] for j in range(len(stack)): if len(temp) == 0: temp.append(stack[j]) else: if temp[len(temp) - 1] == stack[j]: temp.pop() else: ..

백준 18258 큐2

18258번: 큐 2 (acmicpc.net) 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import sys from collections import deque queue = deque([]) N = int(sys.stdin.readline()) for i in range(N): str = sys.stdin.readline() if (str[:4] == 'push'): queue.append(int(str[5:])) elif (str[:3] == "pop"): if (len(qu..

백준 1541 잃어버린 괄호

1541번: 잃어버린 괄호 (acmicpc.net) 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net nums = input().split('-') temp = 0 for i in range(len(nums)): if '+' in nums[i]: s = map(int, nums[i].split('+')) for j in s: temp = temp + j nums[i] = temp else: nums[i] = int(nums[i]) temp = 0 result = nums[0] for i in range(1..

4948 베르트랑 공준

4948번: 베르트랑 공준 (acmicpc.net) 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net import math import sys result = 0 lst = [] def isPrime(num): if num == 1: return False elif num == 2: return True else: for j in range(2, int(math.sqrt(num)) + 1): if num % j == 0: return False return True for i in range(2, 246..

백준 10814 나이순 정렬

10814번: 나이순 정렬 (acmicpc.net) 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net import sys N = int(sys.stdin.readline()) lst = [] for _ in range(N): a, b = input().split() lst.append([a, b]) lst.sort(key = lambda x : int(x[0])) for i in lst: print(i[0], i[1]) 간단한 문젠데 자꾸 틀렸습니다라고 뜬 이유 = lst[0] 의 항목들을 str -> int로 바꿔주..

2798 블랙잭

2798번: 블랙잭 (acmicpc.net) 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net N, M = map(int,input().split()) lst = list(map(int, input().split())) result = 0 for i in range(N): for j in range(i + 1, N): for k in range(j + 1, N): if lst[i] + lst[j] + lst[k] result: result = lst[i] + lst[j] + ls..

백준 1010 다리놓기

1010번: 다리 놓기 (acmicpc.net) 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net T = int(input()) lst = [] num1, num2 = 1, 1 for _ in range(T): N, M = map(int, input().split()) for i in range(N): num1 = num1 * (M - i) num2 = num2 * (N - i) lst.append(int(num1 / num2)) num1, num2 = 1, 1 for i in lst: print(i) 그냥 예..

백준 15649 N과 M(1)

15649번: N과 M (1) (acmicpc.net) 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 첫 백트래킹(DFS) 문제였다. 처음이어서 답을 참고했지만 다음부턴 스스로 풀도록 하자....... N,M = map(int, input().split()) visited = [False] * N lst = [] def dfs(depth): if depth == M: print(' '.join(map(str, lst))) return for i in range(N): if not visited[i]: vis..

728x90