문제: http://183.106.113.109/30stair/coci_trik/coci_trik.php?pname=coci_trik
문제 요약 |
컵이 3개 있고, 최초 왼쪽 컵에 공을 넣었다. 이리저리 섞은 후 최후에 공이 들어 있는 컵을 맞추는 문제다.
인풋값으로 A, B 또는 C가 주어질 수 있고, 최대 50번까지 섞는게 가능하다.
A는 왼쪽과 중간 컵의 위치를 바꾸는 것이다.
B는 중간과 오른쪽 컵의 위치를 바꾸는 것이다.
C는 왼쪽과 오른쪽 컵의 위치를 바꾸는 것이다.
Code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #include <stdio.h> #pragma warning(disable:4996) char order[51]; int ball[3] = {1, 0, 0}; int main(void) { int i, tmp; scanf("%s", &order); for (i = 0; i < 51; i++) { if (order[i] == '\0') break; switch (order[i]) { case 'A': tmp = ball[0]; ball[0] = ball[1]; ball[1] = tmp; break; case 'B': tmp = ball[1]; ball[1] = ball[2]; ball[2] = tmp; break; case 'C': tmp = ball[0]; ball[0] = ball[2]; ball[2] = tmp; break; } } if (ball[0] == 1) printf("1"); else if (ball[1] == 1) printf("2"); else printf("3"); } |
'Algorithm > Dovelet' 카테고리의 다른 글
josephus / 통과율(51%) (0) | 2014.07.02 |
---|---|
Block/통과율(61%) (0) | 2014.07.02 |
[Dynamic Programming]scv 자원 채취 (0) | 2014.04.08 |
[Dovelet] 친구수/amicable (0) | 2013.07.21 |
[C]약수 구하기 (0) | 2013.07.19 |