전체 글

Programming/Coding Problem

BOJ 2869번 : 달팽이는 올라가고 싶다

안녕하세요. 지난 포스팅의 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$ 높이만큼 도달하는 날이라고 정의하겠습니다. 그리고 낮을..

Programming/Coding Problem

BOJ 1193번 : 분수찾기

안녕하세요. 지난 포스팅의 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)) 해설 사실 이 문제는 그룹 수열 자체를 이..

수학/집합론

집합론 - 함수

안녕하세요. 지난 포스팅의 집합론 - 데카르트 곱에서는 두 개의 집합을 이용해서 새로운 집합을 구성하는 데카르트 곱(Cartesian Product)에 대해서 아주 간단하게 알아보았습니다. 지금까지는 정말 집합론의 기본적인 개념들만 배웠기 때문에 이제부터는 이를 활용할 수 있는 방법에 대해서 말해보고자 합니다. 저희는 이를 함수(function)로 시작해보겠습니다. 저희는 함수에 대한 내용을 미적분학 - 함수에서 아주 간단히 다루어보았습니다. 해당 포스팅에서의 정의에 따르면 함수란 정의역 $D$의 원소 $x$가 공역의 어떤 원소로 대응되는 규칙(Rule)을 의미한다고 하였습니다. 그리고 저희는 이전부터 강조했지만 수학자들이 가장 싫어하는 것은 모호한 표현입니다. 대응 규칙(Rule of Assignmen..

Programming/Coding Problem

BOJ 2292번 : 벌집

안녕하세요. 지난 포스팅의 BOJ 1712번 - 손익분기점에서는 math 라이브러리를 이용해서 수학 문제를 풀어보았습니다. 오늘은 수열과 관련된 문제를 풀어보도록 하죠. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 계차수열(progression of differences) 제출 코드 N = int(input()) if N == 1 : print(1) else : k = 1 while True : if 3*k**2 - 3*k + 2 = N : print(k + 1) break k += 1 해설 이 문제의 핵심은 계차수열임을 빠르게 파악하는 것입니다. $N$의 범위에 따라서 결과는 일정하다는 것을 관찰할 수 있죠. $$\begin{align..

수학/미적분학

미적분학 - 구좌표계에서의 삼중적분

안녕하세요. 지난 포스팅의 미적분학 - 원기둥좌표계에서의 삼중적분에서는 원기둥좌표계에서는 삼중적분을 수행하는 방법에 대해서 알아보았습니다. 오늘은 삼차원에서 새로운 좌표계인 구면좌표계(Spherical Coordinate)에서의 삼중적분을 수행하는 방법에 대해서 알아보도록 하겠습니다. 일단 구면좌표계(Spherical Coordinate)이 어떻게 정의되는지부터 알아봐야겠네요. 원기둥좌표계에서는 $(r, \theta, z)$로 이루어진 좌표계로 $r = \sqrt{x^{2} + y^{2}}$ 그리고 $\theta = \arctan\left(\frac{x}{y}\right)$로 정의되었습니다. 그리고 $z$는 직교좌표계의 높이와 동일하게 정의가 되었죠. 구면좌표계에서는 $(\rho, \theta, \phi..

Programming/Coding Problem

BOJ 1712번 : 손익분기점

안녕하세요. 지난 포스팅의 BOJ 1316번 : 그룹 단어 체커에서는 이중조건문을 이용해서 문자열과 관련된 문제를 풀어보았습니다. 오늘은 주제를 바꾸어서 수학적인 문제를 구현해보는 시간을 가져보도록 하죠. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 math 라이브러리 제출 코드 import math A, B, C = map(int, input().split()) if B >= C : print(-1) else : print(math.floor(A / (C - B) + 1)) 해설 일단, 이 문제는 3개의 입력을 받게 됩니다. 각각 고정비용 $A$, 가변비용 $B$, 상품비용 $C$ 입니다. 그리고 $x$를 판매한 상품의 개수라고 하겠습..

Programming/Coding Problem

BOJ 1316번 : 그룹 단어 체커

안녕하세요. 지난 포스팅의 BOJ 2941번 : 크로아티아 알파벳에서는 replace 함수를 이용해서 크로아티아 알파벳을 단순한 문자로 치환한 뒤 문자열의 길이를 계산하는 방법을 적용해보았습니다. 오늘은 살짝 조건문이 까다로운 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 제출 코드 cnt = 0 for _ in range(int(input())) : S = input() alpha = [0] * 27 for idx, s in enumerate(S) : if alpha[ord(s) - 97] == 0 : alpha[ord(s) - 97] += 1 else : if S[idx - 1] == s :..

수학/집합론

집합론 - 데카르트 곱

안녕하세요. 지난 포스팅의 집합론 - 확장된 합집합과 교집합에서는 기존에는 2개 또는 3개의 집합들 사이의 연산만 수행하였지만 이를 임의의 개수의 집합들의 연산으로 확장을 해보았습니다. 지금까지 저희는 새로운 집합을 만드는 방법으로 합집합, 교집합, 차집합에 대해서 알아보았습니다. 오늘은 새로운 연산인 집합의 데카르트 곱(cartesian product)에 대해서 알아보도록 하겠습니다. 정의1. 데카르트 곱(cartesian product) 임의의 두 집합 $A$와 $B$에 대해서 두 집합의 데카르트 곱 $A \times B$은 집합 $A$의 원소 $a$와 집합 $B$의 원소 $b$의 순서쌍(ordered pair) $(a, b)$으로 만들어지는 집합이다. $$A \times B = \{(a, b) | ..

Johns Hohns
Everyday Image Processing