안녕하세요. 지난 포스팅의 미적분학 - 다중적분의 변수변환법에서는 실질적으로 좌표계 변환을 했을 때 발생하는 넓이 차이 $\Delta A$가 생기는 원리와 이를 보정하는 값인 야코비(Jacobian)에 대해서 알아보았습니다. 오늘은 벡터장(Vector Field)에 대해서 알아보도록 하겠습니다. 여러분들이 가장 흔히 보시는 벡터장은 위와 같이 기상뉴스에서 각 위치에 따른 바람의 방향입니다. 다른 예시로는 위 그림과 같이 해류의 방향과 공기의 순환 방향을 예로 들 수 있습니다. 정의1. 벡터장(Vector Field) 1). $D$를 $\mathbb{R}^{2}$의 부분집합이라고 하자. $\mathbb{R}^{2}$에서의 벡터장은 영역 $D$의 각 점 $(x, y)$에 대한 이차원 벡터함수 $\mathbf..
안녕하세요. 지난 포스팅의 BOJ 2775번 : 부녀회장이 될테야에서는 이차원 배열과 이중반복문을 이용해서 문제를 풀어보았습니다. 오늘도 조금 생각을 해야하는 문제를 풀어보도록 하죠. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 제출 코드 N = int(input()) if N % 5 == 0 : print(N // 5) else : cnt = 0 while True : N -= 3 cnt += 1 if N % 5 == 0 : print(cnt + N // 5) break elif N < 3 : print(-1) break 해설 입력 형식은 무게 $N$이 정수형으로 입력됩니다. 그리고 문제의 목적은 3Kg/5Kg 봉투를 최..
안녕하세요. 지난 포스팅의 집합론 - 함수에서는 함수를 보다 명확하게 정의하기 위해서 대응규칙을 정의하고 합성함수와 함께 특별한 조건을 만족하는 함수들인 단사함수, 전사함수, 전단사함수에 대해서 알아보았습니다. 오늘은 상(image)와 역상(inverse image)에 대한 이야기를 해보도록 하겠습니다. 정의1. 상(image)과 역상(inverse image) 1). 함수 $f : A \rightarrow B$와 부분집합 $A_{0} \subset A$가 주어졌다고 가정하자. 집합 $A_{0}$의 모든 원소들을 함수 $f$에 의해 변환시킨 $f(A_{0})$를 함수 $f$에 대한 $A_{0}$의 상이라고 한다. $$f(A_{0}) = \{b \in B | b = f(a) \text{ for at lea..
안녕하세요. 지난 포스팅의 미적분학 - 구면좌표계에서의 삼중적분에서는 직교좌표계를 구면좌표계로 또는 그 반대로 구면좌표계를 직교좌표계로 변환시키는 방법과 함께 구면좌표계로 정의된 영역 내에서 삼중적분을 하는 방법에 대해서 알아보았습니다. 오늘은 다중적분에서 변수변환법(Change of Variables)을 적용하는 방법에 대해서 알아보도록 하겠습니다. 일단, 미적분학 - 치환적분에서 보았던 개념을 다시 보도록 하겠습니다. 기본적으로, $y = f(x)$이고 $x = g(u)$로 표현되는 매개변수 함수라고 가정했을 때 함수 $y$를 $x = a$부터 $x = b$까지의 적분을 변수 $u$를 이용해서 표현할 수 있습니다. $$\int_{a}^{b} f(x) \; dx = \int_{c}^{d} f(g(u))..
안녕하세요. 지난 포스팅의 BOJ 10250번 : ACM 호텔에서는 이차원 배열을 활용해서 문제를 풀어보았습니다. 오늘도 이차원 배열을 활용해서 문제를 풀어보도록 하죠. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 제출 코드 for _ in range(int(input())) : k = int(input()) n = int(input()) floor = [[i for i in range(1, n + 1)]] for i in range(1, k + 1) : line = [] for j in range(1, n + 1) : line.append(sum(floor[i - 1][:j])) floor.append(line) prin..
안녕하세요. 지난 포스팅의 BOJ 2869번 : 달팽이는 올라가고 싶다에서는 파이썬 내장 라이브러리 중 하나인 math 라이브러리의 ceil 함수를 이용해서 부등식 문제를 풀어보았습니다. 오늘은 약간 복잡한 문제를 풀어보도록 하죠. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 제출 코드 for _ in range(int(input())) : H, W, N = map(int, input().split()) i = 0 while True : if N > i * H and N
안녕하세요. 지난 포스팅의 BOJ 1193번 : 분수찾기에서는 그룹수열의 간단한 패턴을 분석하여 문제를 풀어보았습니다. 오늘은 부등식 문제를 해결하는 방법에 대해서 보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 math 라이브러리 제출 코드 import math A, B, V = map(int, input().split()) print(math.ceil((V - A) / (A - B) + 1)) 해설 기본적으로 이 문제의 입력은 3개의 변수($A, B, V$)가 공백을 가지고 입력되기 때문에 map 함수를 이용해서 입력을 받아줍니다. 일단, $x$을 달팽이가 $V$ 높이만큼 도달하는 날이라고 정의하겠습니다. 그리고 낮을..
안녕하세요. 지난 포스팅의 BOJ 2292번 : 벌집에서는 계차수열을 활용해서 문제를 풀어보았습니다. 오늘도 역시 수열과 관련된 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 그룹 수열(Group Sequence) 제출 코드 X = int(input()) G = 1 while (G * (G - 1)) // 2 < X : G += 1 G = G - 1 N = X - (G * (G - 1)) // 2 if G % 2 == 0 : print(str(N) + '/' + str(G - N + 1)) else : print(str(G - N + 1) + '/' + str(N)) 해설 사실 이 문제는 그룹 수열 자체를 이..