파이썬

문제 링크 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 소스 코드 m,n = map(int,input().split()) sosu = [1 for _ in range(n+1)] sosu[1] = 0 for num in range(2,int(n**0.5)+1): if sosu[num]: # 배수로 제거되지 않은 숫자인 경우 # 이 숫자의 배수는 전부 0으로 바꿔준다 for multiple in range(num+num,n+1,num): sosu[multiple] = 0 # ..
문제 링크 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 소스 코드 n = int(input()) arr = list(map(int,input().split())) dp = [1] * n # dp 테이블 초기화 for i in range(1, n): # 2번째 원소부터 for j in range(0, i): # 그 이전 원소들과 비교하여 if arr[i] > arr..
문제 링크 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 소스 코드 from collections import deque c = int(input()) graph = [[] for _ in range(c+1)] n = int(input()) for i in range(n): # 양방향 간선 추가 a,b = map(int,input().split()) graph[a].append(b) graph[b].append(a) # 이 문제에서는 정렬 불필요해..
문제 링크 https://www.acmicpc.net/problem/1195 1195번: 킥다운 첫 줄에는 첫 번째 기어 파트를 나타내는 1과 2로 구성된 문자열이 주어진다. 두 번째 줄에는 마찬가지로 두 번째 기어 파트를 나타내는 1, 2로 구성된 문자열이 주어진다. 여기서 1은 홈을, 2는 www.acmicpc.net 소스 코드 a = input() b = input() answer = len(a) + len(b) # 최악의 경우 # 길이가 긴 것을 a, 짧은 것을 b로 설정 if len(a) < len(b): a,b = b,a gap = len(a) - len(b) # 길이가 짧은 것이 왼쪽에 길게 늘어지는 경우 # 000002112112112 # 221211200000000 for zero in ..
문제 링크 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 소스 코드 question = input() stack = [] answer = 0 for idx in range(len(question)): if question[idx] == '(': # 열린 괄호는 추가 stack.append('(') else: # 닫는 괄호의 경우 stack.pop() if question[idx-1] == '(': # 레이저인 경우 answer += len(stack) ..
문제 링크 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,v = map(int,input().split()) graph = [[] for _ in range(n+1)] for i in range(m): # 양방향 간선이므로 둘 다 그래프에 추가 a,b = map(int,input().split()) graph[a].append(b) g..
chanmuzi
'파이썬' 태그의 글 목록