본문 바로가기

반응형

코딩/백준

백준 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 더보기
백준 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) 생각 : # 문제 분석 # 블루레이의 크기가 모두 같고 녹화 .. 더보기
백준 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.. 더보기
백준 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.. 더보기
백준 1260 파이썬 DFS와 BFS를 구현할 수 있는가 백준 1260 - DFS와 BFS 문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 답안 코드 : from collections import deque N, M, Start = map(int, input().split()) A = [[] for _ in range(N + 1)] for _ in range(M): s, e = map(int, input().split()) A[s].append(e) # 양방.. 더보기
백준 13023 파이썬 DFS의 시간 복잡도 O(V+E) 백준 13023 - ABCDE 문제 https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 답안 코드 : import sys sys.setrecursionlimit(10000) input = sys.stdin.readline N, M = map(int, input().split()) arrive = False A = [[] for _ in range(N + 1)] visited = [False] * (N + 1) def DFS(now, depth): global arrive if depth == 5 or arrive == True: # 깊이가 5가 되면 종.. 더보기
백준 2023 파이썬 DFS 재귀함수 백준 2023 - 신기한 소수 문제 https://www.acmicpc.net/problem/2023 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 답안 코드 : import sys sys.setrecursionlimit(10000) input = sys.stdin.readline N = int(input()) def isPrime(num): for i in range(2, int(num / 2 + 1)): if num % i == 0: return False return True def DFS(.. 더보기
백준 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) .. 더보기

반응형