반응형

백준 파이썬 122

[파이썬, Python] 백준 2217: 로프

문제 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) rope = sorted([int(input()) for i in range(n)], reverse = True) res = list() for i in rope: res.append(i * (len(res) + 1)) print(max(res)) 설명 우선 n과 로프의 값을 각각..

[파이썬, Python] 백준 1904: 01타일

문제 https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 코드 n = int(input()) dp = [0] * 1000001 dp[1] = 1 dp[2] = 2 for i in range(3, n+1): dp[i] = (dp[i-1] + dp[i-2]) % 15746 print(dp[n]) 설명 경우의 수에 대해서 생각을 해보아야 한다. 우선 길이가 1인 경우는 1이 들어가는 1가지 경우밖에 없다. 길이가 2인 경우는 00 과 11 밖에 없다. 길이가..

[파이썬, Python] 백준 15650: N과 M (2)

문제 https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 코드 n, m = map(int, input().split()) s = [] def dfs(start): if len(s) == m: print(' '.join(map(str,s))) return for i in range(start, n+1): if i not in s: s.append(i) dfs(i+1) s.pop() dfs(1) 설명 https://looancheong.tistory..

[파이썬, 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] 백준 11382: 꼬마 정민

문제 https://www.acmicpc.net/problem/11382 11382번: 꼬마 정민 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다. www.acmicpc.net 코드 a, b, c = map(int, input().split()) print(a+b+c) 설명 3가지의 수를 입력 받아서, 그 수를 더한 결과를 출력하는 문제이다. split() 함수를 통해서 공백을 기준으로 수를 입력받고, print()를 통해서 출력해주자

[파이썬, 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] 백준 2178: 미로 탐색

문제 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) s= [] que = [] dx = [1, -1, 0, 0] dy = [0, 0, -1, 1] for _ in range(n): s.append(list(input())) que = [[0, 0]] s[0][0] = 1 while que: a, b = que[0][0], que[0][1] de..

[파이썬, 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..

반응형