목록백준 (60)
컴공생의 다이어리
백준 2014번 : 소수의 곱 (문제 바로가기) 내 코드 import heapq k, n = map(int, input().split()) prime = list(map(int, input().split())) h = prime[:] heapq.heapify(h) for i in range(n): num = heapq.heappop(h) for j in prime: heapq.heappush(h, num * j) if num % j == 0: break print(num)
백준 4948번 : 베르트랑 공준 (문제 바로가기) 내 코드 import sys n_max = 123456 is_prime = [True] * (2 * n_max + 1) is_prime[0], is_prime[1] = False, False for i in range(2, int((2 * n_max) ** 0.5) + 1): if is_prime[i]: j = 2 while (i * j)
백준 2346번 : 풍선 터뜨리기 (문제 바로가기) 내 코드 import sys from collections import deque n = int(sys.stdin.readline()) deq = deque(enumerate(map(int, sys.stdin.readline().split()), start=1)) for i in range(n): p = deq.popleft() print(p[0], end=' ') if p[1] > 0: deq.rotate(-(p[1] - 1)) else: deq.rotate(-p[1]) 아래는 나와 같은 방식으로 문제를 푼 사람의 게시글이다. 잘 정리되어 있어 이해가 가지 않는다면 보는 것을 추천한다. [Python] 백준 2346 풍선 터뜨리기 (Deque) 터진 ..
백준 10799번 : 쇠막대기 (문제 바로가기) 내 코드 import sys text = list(sys.stdin.readline().strip().replace("()", "*")) stack = [] result = 0 for i in range(len(text)): if text[i] == "(": stack.append(0) elif text[i] == ")": stack.pop() result += 1 else: # 레이저 일때 result += len(stack) print(result)
백준 1015번 : 수열 정렬 (문제 바로가기) 내 코드 import sys n = int(sys.stdin.readline()) nums = list(map(int, sys.stdin.readline().split())) index = [-1] * n for i in range(n): idx = nums.index(min(nums)) index[idx] = i nums[idx] = 1001 print(' '.join(map(str, index)))
백준 1543번 : 문서 검색 (문제 바로가기) 내 코드 import sys document = sys.stdin.readline().strip() find_txt = sys.stdin.readline().strip() len_find_txt = len(find_txt) index, count = 0, 0 while True: index = document.find(find_txt, index) if index == -1: break count += 1 index += len_find_txt print(count)
백준 1966번 : 프린터 큐 (문제 바로가기) 내 코드 T = int(input()) for _ in range(T): N, M = map(int, input().split()) queue = list(map(int, input().strip().split())) queue = [(v, idx) for idx, v in enumerate(queue)] count = 0 while True: if max(queue)[0] == queue[0][0]: count += 1 if queue[0][1] == M: print(count) break else: queue.pop(0) else: queue.append(queue.pop(0))
백준 1874번 : 스택 수열 (문제 바로가기) 내 코드 n = int(input()) count = 1 stack = [] result = [] for _ in range(n): data = int(input()) while count
백준 3460번 : 이진수 (문제 바로가기) 내 코드 import sys T = int(input()) result = [] for _ in range(T): test_case = int(sys.stdin.readline().strip()) result.append([idx for idx, n in enumerate(format(test_case, 'b')[::-1]) if n == '1']) for r in result: print(" ".join(map(str, r)))