백준 1966: 프린터 큐 (파이썬) 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net # [BOJ] 1966. 프린터 큐 T = int(input()) for tc in range(T): # N: 문서의 개수, M: 현재 queue에서의 위치 N, M = map(int, input().split()) ans = 0 # N개 문서의 중요도 imp = list(map(int, input().split())) L = ['o'] * N L[M] = 'x' while 'x' in L: # 맨 앞 값보다 중요도가 높은 값이..
백준 4949: 균형잡힌 세상 (파이썬) 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net # [BOJ] 4949. 균형잡힌 세상 OP = ['(', '['] CP = [')', ']'] while 1: S = input() if S == '.': break # 괄호가 아예 없는 경우 yes 처리 if '(' not in S and ')' not in S and '[' not in S and ']' not in S: print('yes') # 여기서부터 문제풀이 else: ans = 'ye..
백준 2217: 로프 (파이썬) 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net # [BOJ] 2217. 로프 2022-11-26 N = int(input()) a = 0 # 전체 로프를 작은 것부터 정렬 L = sorted(list(int(input()) for _ in range(N))) for _ in range(N): # 가장 작은 값을 전체 로프의 수 만큼 곱해 보고 현재 최대값보다 크면 닶 변경 aa = L[0] * len(L) if aa > a: a = aa # 0번째 인덱스 값을 없앰으..
백준 10989: 수 정렬하기 3 (파이썬) 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net # [BOJ] 10989. 수 정렬하기 3 import sys N = int(sys.stdin.readline()) C = [0] * 10001 for i in range(N): C[int(sys.stdin.readline())] += 1 for i in range(len(C)): if C[i] != 0: for _ in range(C[i]): print(i) 메모리초과 싫다
백준 11652: 카드 (파이썬) 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net # [BOJ] 11652. 카드 N = int(input()) D = {} L = [] for i in range(N): n = int(input()) if n in D: D[n] += 1 else: D[n] = 1 v = max(D.values()) for d in D: if D[d] == v: L.append(d) print(min(L)) 정렬 문제 정렬 안 쓰고 풀기
백준 1463. 1로 만들기 (파이썬) 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net import sys X = int(sys.stdin.readline()) L = [0] * (X + 1) for i in range(2, X + 1): if i % 2 == 0 and i % 3 == 0: L[i] = min(L[i - 1] + 1, L[i // 2] + 1, L[i // 3] + 1) elif i % 2 == 0: L[i] = min(L[i - 1] + 1, L[i // 2] + 1) elif i % 3 == 0: L[i] = min(L[i - 1] + 1, L[i // 3] + 1) else: L[i] = L[i - ..