분류 전체보기 25

[C++] string 붙이기 , string append함수

오늘은 string을 특정 string 뒤에다가 붙이는 append 함수를 알아보겠습니다 1. 함수 설명 헤더파일 : 함수 원형 : string& append (const string& str); string& append (const string& str, size_t subpos, size_t sublen = npos); string& append (const char* s); string& append (const char* s, size_t n); string& append (size_t n, char c); string& append (InputIterator first, InputIterator last); string& append (initializer_list il); 함수 설명 : 특정..

c, c++ 2022.03.30

[백준/BOJ] 18411 - 試験 (c++)

1. 문제 www.acmicpc.net/problem/18411 18411번: 試験 JOI 君は情報の試験を 3 回受けた.試験の点数はすべて 0 以上 100 以下の整数である. JOI 君の成績は 3 回の試験の点数のうち高い方から 2 つを足し合わせた合計によって決まる. 3 回 www.acmicpc.net 문제가 JOI 君は情報の試験を 3 回受けた.試験の点数はすべて 0 以上 100 以下の整数である. JOI 君の成績は 3 回の試験の点数のうち高い方から 2 つを足し合わせた合計によって決まる. 3 回の試験の点数 A, B, C が与えられたとき,3 回の試験の点数のうち高い方から 2 つを足し合わせた合計を出力するプログラムを作成せよ. 이거인데 번역기를 돌려보니 JOI 군은 정보의 시험을 3 번 받았다. 시험 점수는 모두 0 이상 100..

[백준/BOJ] 2740 - 행렬 곱셈 (c++)

1. 문제 www.acmicpc.net/problem/2740 2. 풀이 위의 식처럼 행렬 곱셈을 원소 하나하나씩 푸는 것이다. 3. 소스코드 #include int m1[102][102], m2[102][102], res[102][102] = { 0 }; int main() { int n, m, k; scanf("%d %d", &n, &m); for (int i = 0;i < n;i++) { for (int j = 0;j < m;j++) { scanf("%d", &m1[i][j]); } } scanf("%d %d", &m, &k); for (int i = 0;i < m;i++) { for (int j = 0;j < k;j++) { scanf("%d", &m2[i][j]); } } for (int i =..

[백준/BOJ] 11401 - 이항 계수 3 (c++) (페르마의 소정리, 분할정복)

1. 문제 www.acmicpc.net/problem/11401 2. 풀이 제일 오른쪽 수식에서의 분모가 0이 될 수 있는 가능성이 있기에 저렇게는 사용불가능하다. 여기서 페르마의 소정리가 쓰이는데 a^(p - 1) = 1 (mod p)는 합동식으로써 쉽게 a^(p - 1) mod p = 1 mod p과 같은 식이라고 생각하면 된다. 그래서 a^(p - 1) = 1 (mod p) ↓ a * a^(p - 2) = 1 (mod p) ↓ a^(p - 2) = a^-1 (mod p)이라고 볼 수 있다. 결론적으로 를 구하면되고 지수부분이 굉장히 크기 때문에 분할정복을 통해 제곱연산을 실행하면 시간내에 풀 수 있다. 분할정복을 통한 제곱연산 풀이: zcacoding.tistory.com/2 백준 1629 - 곱셈..

[백준/BOJ] 1629 - 곱셈 (c++) (분할정복)

1. 문제 www.acmicpc.net/problem/1629 2. 풀이 A의 B승은 A의 B/2승의 제곱과 같다. 위와 같이 지수가 짝수일 경우 단지 지수를 반으로 쪼개기만 하면 되었지만 아래의 수식과 같이 지수가 홀수일 경우 반으로 쪼개는 것과 동시에 밑을 하나 더 곱해주면 된다. 3. 소스코드 #include typedef long long ll; int a, b, c; ll power(long long n, long long m) { if (m == 0) return 1; ll res = power(n, m / 2) * power(n, m / 2) % c; if (m % 2) return res * n % c; return res; } int main() { scanf("%d %d %d", &a,..