본문 바로가기

728x90
반응형

전체 글

(122)
[백준 / 4811] 알약 - Python https://www.acmicpc.net/problem/4811 4811번: 알약 입력은 최대 1000개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄이며, 병에 들어있는 약의 개수 N ≤ 30 가 주어진다. 입력의 마지막 줄에는 0이 하나 주어진다. www.acmicpc.net 해당 문제는 카탈란 수를 이용하여 풀었다. 공식 : Cn = (2*n)! / n! * (n+1)! import math def catalan(n): return math.factorial(2*n)//(math.factorial(n)*math.factorial(n+1)) while True: n = int(input()) if n == 0: break print(catalan(n))
[백준 / 11724] 연결 요소의 개수 - Python 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 def visit_tree(graph, visit, start): queue = [start] while queue: node = queue.pop() if node in visit: continue else: visit.append(node) queue.extend(graph[node]) n, m = map(int..
[백준 / 11725] 트리의 부모 찾기 - Python https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net import sys graph = {} top = {} n = int(sys.stdin.readline()) for _ in range(n-1): x, y = map(int, sys.stdin.readline().split()) if x not in graph: graph[x] = [y] else: graph[x].append(y) if y not in graph: graph[y] = [x] else: graph[y].append(x) queue = [1] w..
[백준 / 19238] 스타트 택시 - Python https://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 어렵다. 해당 문제는 '다익스트라 알고리즘(Dijkstra)'을 응용하여 풀었다. 2021.03.18 - [# Coding/# Algorithm] - [보기 쉬운 Algorithm] 다익스트라(Dijkstra) 알고리즘 - Python [보기 쉬운 Algorithm] 다익스트라(Dijkstra) 알고리즘 - Python '다익스트라(Dijkstra) 알고리즘..
[백준 / 1476] 날짜 계산 - Python https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net E의 값을 이용해 가능한 날짜를 계산하면서 모든 수가 같아질 때 까지 반복한다. E, S, M = map(int, input().split()) count = 0 E -= 1 S -= 1 M -= 1 while True: year = 15*count+E if year % 28 == S: if year % 19 == M: break count += 1 print(count*15+E+1)
[백준 / 1504] 특정한 최단 경로 - Python https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 지나야 하는 두 점 v1과 v2을 거쳐서 1에서 N으로 가야 한다. 따라서 나올 수 있는 경로는 1 -> v1 -> v2 -> N 1 -> v2 -> v1 -> N 이 두가지이다. 이 둘을 비교하여 더 짧은 거리가 정답이다. 해당 문제는 다익스트라 알고리즘(Dijkstra Algorithm)을 선행해야 한다. 2021.03.18 - [# Coding/#..
[보기쉬운 pyautogui] 4. 윈도우 - getWindowsWithTitle, getAll,Windows, getActiveWindow curWin = pyautogui.getActiveWindow() : 현재 활성화된 창 curWin.title : 창 이름 curWin.size : 창 크기 curWin.left, curWin.Right, curWin.top, curWin.bottom, pyautogui.getAllWindows() : 모든 창을 받아옴 for w in pyautogui.getAllWindows() : print(w.title) 모든 열린 창의 이름을 출력 pyautogui.getWindowsWithTitle('python') : 문자열이 들어간 이름을 가진 창을 받아옴 w = pyautogui.getWindowsWithTitle('python')[0] w.activate() 'python'이 들어간 첫번째 창을 활성화 ..
[보기쉬운 pyautogui] 2. 키보드 - write, press, hotkey, pyperclip 한글은 입력이 되지 않는다. 따라서 뒤에 나올 클립보드를 이용한다. pyautogui.write('hello') : hello를 입력 pyautogui.wirte(['wo', 'rld', 'enter'], interval=0.5) : 0.5초 간격으로 'wo', 'rld', 'enter'를 입력 pyautogui.KEYBOARD_KEYS : 단일 키 확인 가능(win, enter, esc 등) pyautogui.press('win') : 'win'버튼 눌렀다 뗌 pyautogui.keyDown('shift') : 'shift'버튼 누르고 있음 pyautogui.keyUp('shift') : 'shift'버튼 뗌 pyautogui.hotkey('alt', 'f4') : 단축키 한 번에 사용 가능 [순서 :..

728x90
반응형