반응형

알고리즘 142

[파이썬, Python] 백준 1026: 보물

문제 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 코드 n = int(input()) a_list = sorted(list(map (int, input().split()))) b_list = sorted(list(map (int, input().split())), reverse = True) ans = 0 for i in range(n): ans += a_list[i] * b_list[i] print(ans) 설명 두 리스트의 수를 ..

[파이썬, Python] 백준 1010: 다리 놓기

문제 https://www.acmicpc.net/problem/1010 코드 import math t = int(input()) for i in range(t): r, n = map(int,input().split()) print(math.factorial(n) // (math.factorial(r) * math.factorial(n - r))) 설명 경우의 수를 구하는 문제이다. https://namu.wiki/w/%EA%B2%BD%EC%9A%B0%EC%9D%98%20%EC%88%98 경우의 수 - 나무위키 모든 팀이 2경기를 치른 이후 마지막 경기를 앞둔 시점의 대한민국의 16강에 진출할 수 있는 경우의 수이다. 경우의 수 중 볼드체 표시된 것은 실제 경기 결과이다. 2002년 - 조 1위 16강 진..

[파이썬, Python] 백준 25314: 코딩은 체육과목 입니다

문제 https://www.acmicpc.net/problem/25314 25314번: 코딩은 체육과목 입니다 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ www.acmicpc.net 코드 n = int(input()) for i in range(n//4): print("long", end=" ") print("int") 설명 입력받은 n을 4로 나눈 몫만큼 long을 출력하고 마지막에 int를 출력해 주면 되는 간단한 문제이다.

[파이썬, Python] 백준 14425: 문자열 집합

문제 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) n_list = set() cnt = 0 for _ in range(n): n_list.add(input()) for _ in range(m): word = input() if word in n_list: cnt += 1 prin..

[파이썬, Python] 백준 11723: 집합

문제 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 코드 import sys input = sys.stdin.readline m = int(input()) s = set() li = [i for i in range(1, 21)] for _ in range(m): p = input().split() if p[0] == 'add': s.add(int(p[1])) elif p[0] == 'remove': s.discard(int(p[1])) elif p[0] == 'check': i..

[파이썬, Python] 백준 2606: 바이러스

문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 코드 import sys input = sys.stdin.readline c = int(input()) n = int(input()) visited = [False for _ in range(c + 1)] graph = [[]for _ in range(c + 1)] for _ in range(n): a, b = map(int, input().split()) graph[a].append(b) gra..

[파이썬, Python] 백준 24480: 알고리즘 수업 - 깊이 우선 탐색 2

문제 https://www.acmicpc.net/problem/24480 24480번: 알고리즘 수업 - 깊이 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(10**9) n, m, r = map(int,input().split()) graph = [[] for _ in range(n+1)] visited = [0] * (n+1) cnt = 1 def dfs(gra..

[파이썬, Python] 백준 24479: 알고리즘 수업 - 깊이 우선 탐색 1

문제 https://www.acmicpc.net/problem/24479 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(10**9) n, m, r = map(int,input().split()) graph = [[] for _ in range(n+1)] visited = [0] * (n+1) cnt = 1 for i in ra..

[파이썬, Python] 백준 2805: 나무 자르기

문제 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 코드 import sys input = sys.stdin.readline n,m = map(int,input().split()) tree = list(map(int, input().split())) start, end = 0, max(tree) while start = mid: cut_tree += i - mid if cut_tree >= m: star..

[파이썬, Python] 백준 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 = list(map(int, input().split())) a_list = set(a_list) m = int(input()) num_list = list(map(int, input().split())) for i in num_list: if i in a_list: print(1) else: p..

반응형