Arduino
-
국가암호공모전 2018 (II-A)분야 3번 문제 풀이문제 풀이/2018 국가암호공모전 2020. 3. 10. 19:48
이 문제를 보자마자 바로 Arduino uno rev3를 사러 갔던 기억이 있다.. 크흠 문제의 가장 핵심은? 아래와 같다! 완전 심플한데, 문제는 아두이노에서 기본적으로 제공하는 변수의 최대 크기가 64bit double 또는 long long 형이다. 48비트 변수 두개를 곱하면 최대 크기가 96비트이므로 일반적으로 곱 연산을 하면 32비트가 흘러넘쳐버린다. 처음에는 multiply large numbers represented as Strings처럼 변수를 string으로 바꾸어 계산하는 문제인가? 하고 잘못 접근을 했었다. 그렇게 가능하기는 한데 아두이노 내부의 string 관련 operation(atoi) 등이 시간을 엄청 잡아먹어서 이렇게 풀면 안된다는 것을 직감하고 말았다. 다시 문제를 들여..