Algorithm/수학
[알고리즘] 백준 4375 1 // 모듈러연산, str금지, 자릿수저장할 변수
* 풀이11, 11, 111, ....을 str로 구함 -> 숫자 * 10 +1 으로 대체가능예시에서 12자리는 long long의 범위를 벗어남 -> 직접 num을 구하기 금지, 모듈러 연산을 이용#include using namespace std;using ll = long long;ll n;ll ret;vector nums;int main() { ios_base::sync_with_stdio(0); cin.tie(0); string str="1"; for(int i=0;i>n) { for(auto num : nums) { if(n * 풀이2구하는것 : num % n == 0 이되는 n의 자릿수자릿수를 저장할 변수 필요 (str. size() 금지..
[알고리즘] 백준 1629 곱셈 // 지수승은 재귀로
* 풀이1a^b를 for문으로 구하는방법중간중간에 %c복잡도가 터진다. O(20억) * 풀이2이걸 재귀함수로 /2 해가면서 구하면log2 b 로 줄일수있다! b가 홀수인경우, a를 1번더 곱해주면된다. ( 2^5 = 2^2 * 2^2 * 2^1)각각의 18번째줄의 return 문을 만나면서, 계산한 값을 위로 계속 전달해준다!!return을 받은 위쪽 노드는 15번째 줄부터 수행하면서 다시 계산후, 위 노드에게 값을 전달한다.최초 호출 노드를 만나면 main에서 값이 출력된다. * 전체코드
[알고리즘] 구름 해외주식투자 c++ // 소수점 절사방법, 비교방법, 로그값구하는법
https://level.goorm.io/exam/150257/00%EC%A6%9D%EA%B6%8C-%EC%A3%BC%EC%8B%9D%ED%88%AC%EC%9E%90%EC%9E%90-a/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 1. 소수점 절사방법ex)5.41에서 1을 절사(버리기)하려면10을곱한후 floor 하면된다5.41 -> 54.1 -> 54 2. 소수점 비교방법직접비교 : | a- b| 10^n 을 곱해서 정수로 바꾼후 비교하는걸 추천함!값이 중요한게 아니라 대소만 보면되므로 정수로 바꿔서 == 비교가 정확한듯? 2.5 .로그값구하는법log2 함수를 쓰면된다.log 2 (10) 만 = 16 이다.// function..
백준 1010 다리놓기 c++ // 수학, 조합론
https://www.acmicpc.net/problem/1010 1. 시행착오1. 팩토리얼을 dp에 담으면 되지앟나?2. long long의 범위도 벗어난다.. 오버플로우3. 5C2 = 5*4 / 1*2 로 간소화하기 && 그때그때 나눗셈 계산 -> 오버플로 방지 2. 의사코드1. 이문제는 mCn 문제로 간소화 할 수 있다.즉, (1, 3, 4) 순서쌍 하나만 있으면 그것을 안겹치는 경우로 생각하면 된다. 2. nCr 간소화 버전을 코드로 구현하면 끝이다.ex) 5C2 = 5*4*3 (m~m-2) / 1*2*3(r=1부터 위 수행횟수만큼 증가) 2. 전체코드#include typedef long long ll;using namespace std;ll tc, n,m, dp[34];//n!의 값ll df..