22193
#include <stdio.h>
int main(void){
int num1, num2;
int val1, val2;
int result;
scanf("%d %d", &num1, &num2);
scanf("%d", &val1);
scanf("%d", &val2);
result = val1*val2;
printf("%d", result);
return 0;
}

ㅋㅋ ㅎㅎ 1271번 하기 싫어서 다른 문제 풀고 있었는데 비슷한 문제가 나왔다... ㅜ!!
longlong으로도 풀 수 없는 문제,,!! ㅜㅜ 어쩔 수 없지,, 2번은 못 피한다..
그렇지만 내 힘으로 풀기는 어렵기에 다른 분의 코드가 어떻게 작동되는 건지 하나하나 풀어보기로 함
#include <stdio.h>
int main() {
int n, m;
scanf("%d %d", &n, &m);
char a[50000], b[50000];
scanf("%s\n%s", a, b);
int result[100000];
for (int i = 0 ; i < m ; i++) {
for (int j = 0 ; j < n ; j ++) {
int temp = (a[n-1-j]-'0') * (b[m-1-i]-'0'); //문자에서 '0'을 빼면 숫자와 동일
result[n+m-1-i-j] += temp;
}
}
for (int i = n+m-1 ; i > 0 ; i--) {
result[i-1] += result[i] / 10;
result[i] %= 10;
}
int flag = 0;
for (int i = 0 ; i < n+m ; i++) {
if (flag == 0) {
if (result[i] != 0)
flag = 1;
else if (i == n+m-1)
printf("0");
}
if (flag != 0)
printf("%d", result[i]);
}
return 0;
}

출처:
https://imototot.tistory.com/268
ㅎㅎ 이렇게 코드만 복붙 하면 얼마나 좋을까 ㅎㅎ
그치만 나는 공부를 해야 하는 사람..!!
이건 타자로 치기보단 반복문을 써보면서 따라가야 이해가 더 잘 될 것 같아서 손글씨로 공부해 보았다.
(사실 손글씨 공부하고 여기에 타자로 정리할라고 했지만 ㅎㅎ,,, 귀찮음 이슈)




이렇게 따라가 봤는데, 이렇게만 해서는 뭐가 뭔지 그냥 따라가는 것 밖에 안되기에
그냥 곱셈으로는 어떤 원리인지 살펴본 결과

char로 받는 것은 어느 정도 예상 가능했지만,,
이런 원리로 푸는 것을 생각하는 것과
이런 원리를 코드로 작성하는게 생각보다 더 어려운 것 같다..ㅜㅜ
정말 이렇게 혼자 힘으로 코드 짜시는 분 보면 대단하신것 같다.

오늘 놀면서 한 것도 있고 늦게 시작한 것도 있지만 이거 한다고 시간 다 씀 ㅎ,,
'백준' 카테고리의 다른 글
| [ 백준 / C ] 11945번 : 뜨거운 붕어빵 (1) | 2025.07.08 |
|---|---|
| [ 백준 / C ] 31429번 : SUAPC 2023 Summer (0) | 2025.07.07 |
| [ 백준 / C ] 2393번 : Rook (0) | 2025.07.03 |
| [ 백준 / C ] 14581번 : 팬들에게 둘러싸인 홍준 (1) | 2025.07.02 |
| [ 백준 / C ] 5522번 : 카드 게임 (0) | 2025.07.02 |