파이썬(148)
-
백준 1715 파이썬 우선순위 큐
백준 1715 - 카드 정렬하기 문제 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 답안 코드 : from queue import PriorityQueue N = int(input()) pq = PriorityQueue() for _ in range(N): card = int(input()) pq.put(card) data1 = 0 data2 = 0 sum = 0 while pq.qsize() > 1: data1 = pq.get..
2024.05.23 -
백준 11047 파이썬 전형적인 그리디 알고리즘
백준 11047 - 동전 0 문제 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 답안 코드 : N, K = map(int, input().split()) A = [0] * N for i in range(N): A[i] = int(input()) count = 0 for i in range(N - 1, -1, -1): if A[i]
2024.05.22 -
백준 1300 파이썬 시간 복잡도 N^2인 알고리즘 불가
백준 1300 - k번째 수 문제 https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 답안 코드 : N = int(input()) K = int(input()) start = 1 end = K ans = 0 # 이진 탐색 수행 while start
2024.05.21 -
백준 2343 파이썬 블루레이
백준 2343 - 기타 레슨 문제 https://www.acmicpc.net/problem/2343 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net 답안 코드 : N, M = map(int, input().split()) A = list(map(int, input().split())) start = 0 end = 0 for i in A: if start M: start = middle + 1 else: end = middle - 1 print(start) 생각 : # 문제 분석 # 블루레이의 크기가 모두 같고 녹화 ..
2024.05.20 -
백준 1920 파이썬 이진 탐색 O(nlogn) 시간 복잡도
백준 1920 - 수 찾기 문제 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 답안 코드 : N = int(input()) A = list(map(int, input().split())) A.sort() M = int(input()) target_list = list(map(int, input().split())) for i in range(M): find = False target = targ..
2024.05.19 -
백준 1167 파이썬 가장 긴 경로를 찾는 방법 관련 아이디어
백준 1167 - 트리의 지름 문제 https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 답안 코드 : from collections import deque N = int(input()) A = [[] for _ in range(N + 1)] for _ in range(N): Data = list(map(int, input().split())) index = 0 S = Data[index] index += 1 while True: E..
2024.05.18