전체 글(108)
-
[BOJ, 백준] 24726 미적분학 입문하기 2 Python
(문제 사진이 안보인다... 어째서지) 문제 해결에 있어 주안점은 2가지가 되겠다. 1. 삼각형을 어떠한 방식으로 분할할 것인가? -> 정렬에 대한 이해 필요 / 회전체를 어떻게 분할 할 것인가? 2. 부피 공식의 구현 1. x축에 대해서 회전을 시킬 경우, x축의 값에 따른 정렬y축에 대해서 회전을 시킬 경우에는, y축의 값에 따른 정렬이 필요하겠다. 정렬된 순서대로 부피를 구해주면 되겠다. 즉, (첫번째 - 두번째를 이은 직선으로 회전시켰을때) + (두번째 - 세번째를 이은 직선으로 회전시켰을 때) - (세번째 - 첫번째를 이은 직선으로 회전시켰을 때) 2. 부피 공식의 구현에 있어서는 케이스를 조금 나눌 필요가 있다.x좌표 혹은 y좌표가 같은지 확인할 필요가 있다. (두점이 주어졌을 때 직선..
2024.10.04 -
[BOJ, 백준] 27725 지수를 더하자 Python
1부터 K까지 prime에 해당된 소수를 전부 곱했을 때, 해당 소수(prime)의 지수를 묻는 것과 동일하게 볼 수 있겠다.이하는 코드가 되겠다. import mathimport sysfrom collections import defaultdictsys.setrecursionlimit(10 ** 6)input = sys.stdin.readlineN = int(input())prime = list(map(int,input().split())) #prime의 길이가 NK = int(input())answer = 0for i in range (0,N): cnt = 0 num = K while num > 1: cnt += (num // prime[i]) num //= ..
2024.09.06 -
[BOJ, 백준] 1916 최소비용 구하기 python
Well-known인 다익스트라 알고리즘. ... 처음에 실수로 가중치가 왕복으로 주어지는줄 알았는데, 그게 아니라 편도였던 것.... 수정하니 바로 맞는 결과가 나왔다.import sysimport heapqinput = sys.stdin.readlineN = int(input())M = int(input())gp = [[] for _ in range (0,N+1)]for _ in range (0,M): a,b,cost = map(int,input().split()) gp[a].append((b,cost))start, end = map(int,input().split())INF = int(1e9)dist = [INF for _ in range (0,N+1)]q = []dist[start] =..
2024.09.02 -
[BOJ, 백준] 1713 후보 추천하기 Python
문제 기준에 따라서 열심히 계산해주면 될 것 같다.학생의 번호가 1~100 / 추천 횟수가 1000회 이하이므로 100 x 1000을 해도 연산에 있어 어려움은 없을 것 같다. 답안 코드는 다음과 같다.import sysfrom collections import defaultdictinput = sys.stdin.readlineN = int(input()) #사진틀의 개수m = int(input())rcd = list(map(int,input().split()))candidate = defaultdict(int)date = defaultdict(int) cnt = 0 #사진틀의 현재 갯수for i in range (0,m): #사진첩에 걸린 후보수가 N에 도달했는지 확인 if len(list(..
2024.08.28 -
[ABC 366] AtCoder Beginner Contest 366 리뷰
N, T, A라는 숫자가 주어지고, A와 T는 각각 현재 득표수를 나타내는 상황이며 N은 총 표수를 나타낸다.이때 이 선거의 결과 여부를 판단하는 문제가 되겠다.남아있는 표수를 구한 뒤, 케이스를 나눠 계산해주면 되겠다.import sysinput = sys.stdin.readlinen,t,a = map(int,input().split())remain = n - t - aif t 주어진 문자열을 규칙에 맞게 출력해주면 되겠다.즉, 아래에서부터 위로 읽어주는건데 (f->d->a... 순), 마지막에 딸려있는 공백은 읽지 않고,중간에 껴있는 공백은 *를 넣어주면 되겠고, 해당 코드는 아래와 같이 나오겠다.import sysinput = sys.stdin.readlineN = int(input())m..
2024.08.17 -
[혼자 공부한] 분리집합
분리집합이라는 말을 들었을 때, Disjoint Set이라는 단어가 일단 생각이 났다. 아무리봐도 Intersection이 없는 집합들 이라고 생각할 수 있겠다. 사실 백준에서 문제 하나를 풀고 있었는데, 이거 태그가 분리집합이라서 ... 공부를 해야겠다고 생각하게 된듯. 즉, [1,2,3,4,5,6] 같은 집합이 주어져있을 때, 이들을 어떻게 묶을 것인지? 어떻게 보면 Strongly Connected Component들이 구성되어있는가? 가 되겠다. 먼저 이러한 분리 집합을 생각함에 있어서 Union - Find라는 두개의 function을 통해서 정의된다. 첫번째로, Find (특정 원소가 어디에 소속되어있는지?) def find(parent, x): if parent[x] != x: re..
2024.08.15