1. 봉식씨는 모두 8개의 구슬을 갖고 있습니다. 그런데 이중 단 1개의 구슬만 조금더 무겁습니다. 봉식씨는 양팔저울을 단 2번만 사용 할 수 있는데요~ 어떻게 해야 이 1개의 구슬을 찾을 수 있을까요?
펼쳐두기..
해답 :
A. 3개의 Group을 나눈다. 3개 3개 2개
B. 2개의 Group을 저울에 올린다. 3개 3개
C-1-1 : 저울이 한쪽으로 쏠릴 경우 쏠린쪽의 구슬만 선택한다. 3개
C-1-2 : 나머지 3개를 1개 1개 1개로 나눈 후 1개 1개를 저울에 올린다.
C-1-3 : 한쪽으로 쏠릴경우 해당 구슬 선택, 쏠리지 않을 경우 나머지 1개가 정답
C-2-1 : 저울이 한쪽으로 쏠리지 않을 경우 나머지 2개 구성된 Group 선택
C-2-2 : 2개를 갖고 1개 1개 저울에 올려 한쪽으로 쏠린것이 정답
2. 당신은 아무것도 없는 텅빈 공간에 서있습니다. 이 공간에는 물이 가득 찬 정 원통형 유리컵하나만 있습니다. 당신은 정확힌 50%의 물만을 컵에 남겨 놓은 채 나머지 50%의 물을 이 공간에 버려야만 합니다. 그러면 탈출 할 수 있습니다. 자 어떻게 탈 출할 수 있을까요?
펼쳐두기..
해답 : 물컵을 기울여 밑 바닥 상단과 입구 상단 중 하단이 물로 평형 이루게 함
요런거 입니다. ^^
3. 다음 코드에서 print문을 실행 시키고 싶습니다. 어떻게 해야할까요? 그리고 무슨 이유 때문에 그렇게 해야할까요?(이유가 중요합니다. ^^)
#include<stdio.h>
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] = {23,34,12,17,204,99,16};
int main() {
int d;
for(d=-1;d <= TOTAL_ELEMENTS-2;d++)
printf("%d\n",array[d+1]);
int a;
scanf("%d",&a);
return 0;
} |
펼쳐두기..
해답 : sizeof() 연산자는 Return type이 unsigned int 입니다.
그런 이유로 연산시
d = -1이 unsigned 자동 Casting 되면서 미지(?)의 큰수로 변경됨.
TOTAL_ELEMENTS <-- 요것을 signed int로 Casting 하면 됩니다.
4. 당신은 공주를 구하기 위해서 사막을 건너야 합니다. 이 사막을 건너는 데는 정확히 5일이 걸립니다. 그리고 한 사람이 들고 갈수 있는 식사량은 정확히 3일 치(3끼 기준입니다) 뿐입니다. 당신은 몇명이든 당신과 같은 조건을 갖는 일꾼을 고용할 수 있습니다. 과연 최소한 몇명의 일꾼을 데리고 가야 당신은 무사히 사막을 건널 수 있을까요?
추가 : 3끼중 단 한끼도 굶을 수 없습니다. 물론 일꾼도 마찬가지 입니다.
어느 누구도 사막에 버려질 수 없습니다. 반듯이 살아야 합니다.
도착 하고자 하는 상대편에서 어느 누구도 마중 나올 수 없습니다.
일꾼은 반듯이 같은 날 동시에 일행들과 출발 해야 합니다.
펼쳐두기..
해답 : 6명 입니다.
(출처 답에 오류가 있는거 같습니다. 출처 답 : 5명)
기준은 식사를 하기전 갯수를 기준으로 합니다.
남은 갯수 / 소비한 갯수 (돌아갈때 갖어 가야할 갯수임)
끼니 |
A (주인공) |
B (일꾼) |
C (일꾼) |
D |
E |
F |
G |
1(1day) |
8/1->9 |
8/1->9 |
8/1->9 |
8/1->9 |
8/1->9 |
8/1->9 |
8/1-> |
2(1day) |
9/2->9 |
9/2->9 |
9/2->9 |
9/2->9 |
9/2->9 |
8/2-> |
|
3(2day) |
8/3->9 |
8/3->9 |
8/3->9 |
8/3->9 |
8/3-> |
|
|
4(2day) |
8/4->9 |
8/4->9 |
8/4->9 |
8/4-> |
|
|
|
5(2day) |
8/5->9 |
8/5->9 |
8/5-> |
|
|
|
|
6(3day) |
8/6->9 |
8/6-> |
|
|
|
|
|
7(3day) |
8 |
|
|
|
|
|
|
8(3day) |
7 |
|
|
|
|
|
|
9(4day) |
6 |
|
|
|
|
|
|
10(4day) |
5 |
|
|
|
|
|
|
11(4day) |
4 |
|
|
|
|
|
|
12(5day) |
3 |
|
|
|
|
|
|
13(5day) |
2 |
|
|
|
|
|
|
14(5day) |
1 |
|
|
|
|
|
|
5. 3개의 모래시계가 있는데, 각각 12, 15, 20분짜리입니다.
이것들만 이용해서 7분을 재고 싶다면 어떻게 해야 할까요?
물론, 7분을 재기 전에 준비하는 시간이 최소가 되어야 합니다.
(여러가지 방법 중 최소의 방법입니다.)
펼쳐두기..
해답 : 15분 입니다.
시간 12분짜리 15분짜리 20분짜리 [*일때 뒤집음]
0분 12:0 * 15:0 * 20:0 *
12분 12:0 * 12:3 12:8
15분 9:3 * 15:0 15:5 < start
18분 12:0 * 15:0 18:2
20분 10:2 * 15:0 20:0
22분 12:0 15:0 20:0 < end
%준비시간 15분