ACM준비/기타 9

Self-describing Sequence

문제풀이 >특수한 f(x) 함수에서 규칙을 찾아내어 f(n)을 구한다. >함수의 규칙을 찾아내어 간단히 구현하는게 중요 배울점 >f(1)+..+f(n)의 값을 k라 한다면 f(k)는 n이다. >f(n)을 계산하기 위해서는 위 f(1)+..+f(x)의 값을 넘지않는 x을 찾는다. 소스>성공 #include int map[200][200]; int color[200]; int queue[40000]; int top, bot; int main() { int n, l, i, j, x, y, root; while (scanf("%d", &n), n != 0) { for (i = 0; i < n; i++) { // -1 not input, 1 on, 0 off//init color[i] = -1; for (j = ..

ACM준비/기타 2015.01.08

Reverse and Add

문제풀이 >기존 숫자와 뒤집은 숫자를 합하여 결국 앞뒤가 구분없는 숫자를 만드는게 목표(ex 98789) >최대크기를 고려하는게 중요 배울점 >기존의 int를 넘는 unsigned int 또는 long을 사용함으로써 해결을 할 수 있다. >reverse함수에서 간단한 산술연산으로 구할 수 있다. 소스>성공 #include unsigned int reverse(unsigned int n) { unsigned int n2 = 0; while (n) { n2 = (n2 * 10) + (n % 10); n /= 10; } return n2; } int main() { int Case, count; unsigned int n, n2; scanf("%d", &Case); while (Case--) { scanf("..

ACM준비/기타 2015.01.08