알고리즘(66)
-
백준 11724 파이썬 sys.setrecursionlimit()
백준 11724 - 연결 요소의 개수 문제 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어 www.acmicpc.net 답안 코드 : import sys sys.setrecursionlimit(10000) input = sys.stdin.readline n, m = map(int, input().split()) A = [[] for _ in range(n+1)] visited = [False] * (n+1) ..
2024.05.13 -
백준 28279 파이썬 또 시간 초과
백준 28279 - 덱 2 문제 https://www.acmicpc.net/problem/28279 28279번: 덱 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 답안 코드 : from collections import deque import sys # n = int(sys.stdin.readline()) input = sys.stdin.readline n = int(input()) deq = deque() for _ in range(n): command = input().split() if command[0] == "1": deq.appendleft(..
2024.05.07 -
백준 11866 파이썬 print("<" + ", ".join(map(str, result)) + ">")
백준 11866 - 요세푸스 문제 0 문제 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 답안 코드 : from collections import deque n, k = map(int, input().split()) # 초기화된 원형 큐 생성 people = deque(range(1, n + 1)) result = [] while people: # k-1번째까지의 사람을 큐의 맨 뒤로 옮김 for _ in range(k - 1): people.append(people.popleft()) # k번째 사람을 제거하고 결과에 추가 ..
2024.05.06 -
백준 2164 파이썬
백준 2164 - 카드 2 문제 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 답안 코드 : from collections import deque n = int(input()) cards = list(range(1, n+1)) cards = deque(cards) while len(cards) > 1: # 제일 위에 있는 카드를 버림 discarded_card = cards.popleft() # 제일 위에 있는 카드를 제일 아래로 옮김 car..
2024.05.05 -
백준 18258 파이썬 sys.stdout.write('\n'.join(result))
백준 18258 - 큐 2 문제 https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 답안 코드 : from collections import deque import sys N = int(sys.stdin.readline()) queue = deque() result = [] for _ in range(N): command = sys.stdin.readline().split() if command[0] == "push": q..
2024.05.04 -
백준 4949 파이썬
백준 4949 - 균형잡힌 세상 문제 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 답안 코드 : while True: s = input() # 입력 종료 조건 if s == '.': break stack = [] is_balanced = True for char in s: if char in '([': stack.append(char) elif char in ')]': # 스택이 비어있는 경우나 괄호의 짝이 맞지 않는 ..
2024.05.02