Algorithm/Baekjoon
-
[Python][C++] 11724번 연결 요수의 개수Algorithm/Baekjoon 2024. 9. 3. 18:01
문제https://www.acmicpc.net/problem/11724 코드1. Pythonimport syssys.setrecursionlimit(10**6) # 파이썬의 재귀 한도를 늘려 DFS가 깊게 호출될 수 있도록 설정input = sys.stdin.readline # 입력 속도를 빠르게 하기 위해 sys.stdin.readline 사용# 입력값으로부터 노드 수 n과 간선 수 m을 입력받음n, m = map(int, input().split())# 그래프를 인접 행렬로 표현 (n+1 크기의 2차원 리스트를 생성)# 1번 노드부터 시작하기 때문에 n+1 크기로 설정graph = [[0] * (n+1) for _ in range(n+1)]visited = [0] * (n+1) # 방문 여..
-
[Python][C++] 11723번 집합Algorithm/Baekjoon 2024. 9. 2. 03:13
문제https://www.acmicpc.net/problem/11723 코드1. Pythonimport sysinput = sys.stdin.readline # 빠른 입력을 위해 sys.stdin.readline 사용m = int(input()) # 명령의 수 입력s = set() # 집합을 사용하여 숫자 저장# m개의 명령어 처리for _ in range(m): temp = input().rstrip() # 명령어를 입력받고 공백을 제거 op = temp[:2] # 명령어의 앞 두 글자를 사용하여 명령 종류를 판단 # 'add' 명령어: 집합에 숫자를 추가 if op == "ad": x = int(temp[-2:]) # 명령의 마지막 두 글자에서..
-
[Python][C++] 11659번 구간 합 구하기4Algorithm/Baekjoon 2024. 9. 1. 15:52
문제https://www.acmicpc.net/problem/11659 코드1. Pythonimport sysinput = sys.stdin.readline # 빠른 입력을 위해 sys.stdin.readline 사용sums = [] # 누적 합을 저장할 리스트nums = [] # 입력받은 숫자 리스트# n: 숫자의 개수, m: 구간 합을 계산할 횟수n, m = map(int, input().split())# n개의 숫자 입력받기nums = list(map(int, input().split()))# 첫 번째 숫자의 누적 합을 sums에 추가sums.append(nums[0])# 나머지 숫자들의 누적 합을 계산하여 sums 리스트에 저장for i in range(1, n): sums.app..
-
[Python][C++] 11403번 경로 찾기Algorithm/Baekjoon 2024. 8. 31. 14:48
문제https://www.acmicpc.net/problem/11403 코드1. Pythonimport sysinput = sys.stdin.readline # 빠른 입력을 위해 sys.stdin.readline 사용# 정점의 수 n 입력받기n = int(input())# 그래프의 인접 행렬 입력받기graph = [list(map(int, input().split())) for _ in range(n)]# 플로이드-워셜 알고리즘 적용# 모든 정점 쌍 (i, j)에 대해 경로가 존재하는지 확인for k in range(n): # 경유할 정점 k for i in range(n): # 출발 정점 i for j in range(n): # 도착 정점 j # 정점 ..
-
[Python][C++] 11399번 ATMAlgorithm/Baekjoon 2024. 8. 30. 16:00
문제https://www.acmicpc.net/problem/11399 코드1. Pythonimport sysinput = sys.stdin.readline # 빠른 입력을 위해 sys.stdin.readline 사용n = int(input()) # 사람의 수 n 입력받기# 각 사람이 돈을 인출하는 데 걸리는 시간을 리스트로 입력받기p = list(map(int, input().split()))p.sort() # 시간을 오름차순으로 정렬 (최소 시간으로 만들기 위함)# 인출 시간이 누적되도록 리스트를 갱신for i in range(n-1): p[i+1] += p[i] # 이전 사람까지의 총 시간을 다음 사람의 시간에 더함print(sum(p)) # 모든 사람이 돈을 인출하는 데 걸리는..
-
[Python][C++] 11286번 절대값 힙Algorithm/Baekjoon 2024. 8. 29. 16:22
문제https://www.acmicpc.net/problem/11286 코드1. Pythonimport sysimport heapqinput = sys.stdin.readline # 빠른 입력을 위해 sys.stdin.readline 사용heap = [] # 절댓값 힙을 저장할 리스트 초기화for _ in range(int(input())): # 첫 번째 입력: 명령어의 수 x = int(input()) # 각 명령어에 대한 입력 값 if x: # x가 0이 아닌 경우 (힙에 값을 추가하는 경우) # 절댓값을 기준으로 하는 우선순위 큐를 위해 (절댓값, 실제 값) 형태로 저장 heapq.heappush(heap, (abs(x), x)) else: ..
-
[Python][C++] 11279번 최대힙Algorithm/Baekjoon 2024. 8. 28. 23:58
문제https://www.acmicpc.net/problem/11279 코드1. Pythonimport heapqimport sysdef main(): input = sys.stdin.read # 표준 입력 전체를 한 번에 읽어오는 함수 data = input().split() # 읽어온 입력을 공백을 기준으로 분리하여 리스트로 저장 n = int(data[0]) # 첫 번째 값은 입력의 개수 n pq = [] # 최대 힙을 구현하기 위한 리스트 (우선순위 큐로 사용) for i in range(1, n + 1): x = int(data[i]) # 입력된 정수 x if x: heapq.heappush(pq, -x) #..
-
[Python][C++] 11047번 동전Algorithm/Baekjoon 2024. 8. 26. 18:02
문제https://www.acmicpc.net/problem/11047 코드1. Pythondef main(): # n: 동전의 종류 수, k: 목표 금액 n, k = map(int, input().split()) coins = [] # 동전의 종류를 저장할 리스트 for _ in range(n): coins.append(int(input())) # 각 동전의 가치를 입력받아 리스트에 추가 cnt = 0 # 필요한 동전의 최소 개수를 저장할 변수 # 동전 리스트를 큰 값부터 순차적으로 사용하기 위해 역순으로 접근 for i in range(n - 1, -1, -1): cnt += k // coins[i] # 현재 동전으로 만들 수..