반응형

백준 31

Selenium을 사용해서 백준 유저가 푼 문제 크롤링 하기

리눅스 환경에서 진행했습니다. 아래 명령어를 실행하여 크롬 드라이버를 설치합니다. apt install chromium-chromedriver 백준 사이트에서 유저가 푼 문제를 받아오는 코드입니다. def get_solved_problem(name='chleodnr3'): options = webdriver.ChromeOptions() options.add_argument("headless") # apt install chromium-chromedriver name = 'chleodnr3' driver = webdriver.Chrome(options=options) driver.get("https://www.acmicpc.net/user/{}".format(name)) element = driver.fi..

[백준 파이썬] 11047번 동전

백준 11047번 동전 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()) # 동전 수, 가치 arr = [] # 동전 가격 입력 for i in range(n): arr.append(int(input())) count = 0 # 필요한 동전 수 i = n-1 # arr 마지막 부터 탐색 while i >= 0: if k >= a..

Python/백준 2021.05.12

[백준 파이썬] 11399번 ATM

백준 11399번 ATM www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 파이썬 풀이 n = int(input()) # 사람 수 arr = list(map(int,input().split())) # 인출 시간 arr.sort() # 정렬 result = 0 for i in range(1,n): arr[i] += arr[i-1] # 인출 시간 갱신 print(sum(arr))

Python/백준 2021.05.12

[백준 파이썬] 2839번 설탕 배달

백준 2839번 설탕 배달 www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 파이썬 풀이 n = int(input()) # 설탕 result = 0 # 봉지 수 while n >= 0: if n % 5 == 0: # 5로 나눈 나머지가 0인 경우 result += n // 5 # 5로 나눈 몫 추력 print(result) break n -= 3 # 설탕이 5의 배수가 될때까지 반복 result += 1 # 봉지 추가 else: print(-1) # while문이 거짓이..

Python/백준 2021.05.12

[백준 파이썬] 14502번 연구소 - DFS, 브루트 포스

14502번 연구소 - DFS, 브루트 포스 www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 파이썬 풀이 import sys import copy sys.setrecursionlimit(10**6) input = sys.stdin.readline N, M = map(int,input().split()) graph = [list(map(int,input().split())) for _ in range(N)] # 그래프 생성 graph_copy = copy.deepcopy(..

Python/백준 2021.05.06

[백준 파이썬] 11724번 연결 요소의 개수

백준 11724번 연결 요소의 개수 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 import collections sys.setrecursionlimit(10**6) input = sys.stdin.readline N, M = map(int,input().split()) graph = collections.defaultdict(list) # 빈 그래프 생성 vi..

Python/백준 2021.05.06

[백준 파이썬] 1012번 유기농 배추

1012번 유기농 배추 www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 파이썬 풀이 import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline T = int(input()) def search(x,y): if x = M or y = N: return if graph[x][y] == 0: return graph[x][y] = 0 # 탐색한 배추는 0으로 갱신 # 동서남북 탐색 ..

Python/백준 2021.05.05

[백준 파이썬] 7576번 토마토

백준 7576번 토마토 www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 파이썬 풀이 import sys import collections input = sys.stdin.readline N, M = map(int, input().split()) graph = [list(map(int, input().split())) for i in range(M)] queue = collections.deque() # bfs를 위한 queue 생성 dx, d..

Python/백준 2021.05.05

[백준 파이썬] 1687번 숨바꼭질

백준 1687번 숨바꼭질 www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 파이썬 풀이 import sys import collections input = sys.stdin.readline N, K = map(int,input().split()) # 수빈이와 동생 위치 입력 받기 queue = collections.deque() # bfs를 위한 queue 생성 queue.append(N) # 시작 지점 N dist = collect..

Python/백준 2021.05.04

[백준 파이썬] 2667번 단지번호붙이기

백준 2667번 단지번호붙이기 www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 파이썬 풀이 import sys input = sys.stdin.readline N = int(input()) graph = [list(input().rstrip()) for i in range(N)] # 그래프 생성 visited = [[0] * N for i in range(N)] # 방문 정점 houses = [] house = 0 def search(i, j): # 탐색 gl..

Python/백준 2021.05.04
반응형