본문 바로가기

분류 전체보기90

[즐거운 수학퀴즈] 모래시계로 시간재기 1. 7분짜리와 11분 짜리 모래시계로 15분을 재는 가장 간단한 방법이 무엇일까요? 마틴가드너(Martin Gardner)가 본인의 칼럼에 이문제를 냈더니 많은 사람들의 답이 일단 동시에 시작해서 7분을 보낸다음(아직 시작 안했습니다), 11분짜리에 남은 4분이 지나면 11분짜리 시계를 다시 뒤집는다는 것이었습니다. 하지만 시간을 재기위해 앞의 7분을 낭비할 필요는 없습니다.풀이는 더보기를 누르세요.더보기1. 먼저 두개의 모래시계를 동시에 시작합니다. (0분)2. 7분이 지나면 7분짜리를 뒤집습니다. (7분)3. 11분짜리가 끝나면 7분짜리는 4분이 지났으므로 다시 뒤집습니다. (11분)4. 7분짜리 남은 4분이 지납니다. (15분)5. 빙고! 2. 4분짜리 모래시계와 7분짜리 모래시계로 9분을 재는 .. 2020. 7. 26.
C언어 공부하기 - 순환문(2) do~while, break, continue, goto 1. do~while 문 지난시간에 for문과 while문 등의 순환문에 대해 공부했습니다. for나 while문은 순환(Loop)의 종료 조건을 앞에서 검사를 하는데 반해, do~while문은 뒤에서 검사합니다. 그러므로 최소 1번은 수행이 됩니다. do { statement } while (expression); 일단 do~while문에 진입하여 statement를 수행한 후 expression을 검사합니다. 문법에서 주의할 점은 마지막에 세미콜론(;)이 붙는다는 점을 잊지 말아야 합니다. 예제로 조금 더 알아 보겠습니다. 아래 함수는 itoa라는 함수인데 정수형숫자를 문자배열로 바꿔주는 역할을 합니다. int itoa (int n, char s[]) { int i, sign; if ((sign = .. 2020. 7. 25.
[즐거운 수학퀴즈] 아인슈타인 퍼즐 이 문제는 아인슈타인이 만들었고, 문제를 풀면 전세계 2%내에 드는 영재입니다. 조건1 색깔이 다른 5채의 집이 일렬로 있다. 각 집마다 서로 다른 국적의 사람이 살고 있다. 다섯사람은 어떤 종류의 음료수를 마시고, 담배를 피우고, 동물을 기른다 어떤 두 사람도 음료나 담배, 키우는 동물이 일치하지 않는다. 조건2 영국사람은 빨간집에 산다. 스웨덴 사람은 개를 기른다. 덴마크 사람은 차를 마신다. 초록집은 하얀집의 왼쪽 집이다. 초록집에 사는 사람은 커피를 마신다. 팔말(Pall Mall)담배를 피우는 사람은 새를 기른다. 노란집 사람은 던힐(Dunhill)담배를 피운다. 한가운데 집에 사는 사람은 우유를 마신다. 노르웨이 사람은 첫번째 집에 산다. 블랜드(Blend)담배를 피우는 사람은 고양이를 기르는.. 2020. 7. 24.
C언어 공부하기 - 순환문(1) while, for 순환문(Loop)은 반복계산을 위해 사용되는데 대표적으로 while문과 for 문이 있습니다. 먼저 while문은 아래와 같은 형식으로 사용합니다. while (expression) statement expression을 계산하여 참이면 (= 0 이 아니면) statement를 수행하고 다시 expression을 계산을 반복을 합니다. 반면 for문은 다음과 같은 형식을 갖습니다. for (expr1; expr2; expr3) statement 위 구조의 for 문을 while문으로 동일하게 바꿔 보면 아래와 같습니다. expr1 while (expr2) { statement expr3 } for문의 세가지 expr1, expr2, expr3은 모두 수식이어야 하는데 한개 이상 생략을 할 수 있습니다. .. 2020. 7. 23.
[즐거운 수학퀴즈] 사라진 1달러 세 사람이 바에서 술을 마셨습니다. 총 30 달러가 나왔습니다. 한 사람이 10달러씩 내기로 하고 웨이터에게 돈을 주었는데, 주인이 단골 손님이라고 깎아준다며 웨이터에게 5달러를 돌려주라고 했습니다. 그런데 웨이터가 생각해보니 5달러를 세사람에게 나눠줄 수 없어서 2달러를 자기가 슬쩍하고 3달러만 돌려줬습니다. 그러면, 세사람은 각자 1달러씩 돌려받았으니 9달러씩 술값을 낸 셈임니다. 세사람이 낸 돈 27달러와 웨이터가 가져간 2달러를 합하면 29달러인데. 1달러는 어디 갔을까요? 더보기 실제로 돈을 가지고 있는 사람들은 주인 25달러, 웨이터 2달러, 세사람 3달러로 30달러가 맞습니다. 원래 술값으로 낸 27달러를 주인 25달러, 웨이터 2달러로 나눠가진 것으로 별로 이상할 게 없습니다. 오류가 생긴.. 2020. 7. 23.
C언어 공부하기 - 제어문 C언어에서 제어문은 계산순서를 정하는 것으로서 if ~ else, else if 문, switch 문등이 있습니다. 1. 문장과 블럭 (Statements and Block) x=0 또는 i++, printf(...) 같은 것은 수식 (expression)이라고 하며, 이들이 세미콜론(;)으로 끝이 나면 문장(statement)이 됩니다. i = 0; x++; printf("hello, world!\n"); C언어에서 세미콜론은 문장의 끝을 나타냅니다. 중괄호 { }는 여러개의 선언문이나 문장을 모아서 복합문(compound statement)이나 블럭(block)을 만드는데 쓰입니다. 2. if ~ else 문 if ~ else문은 프로그램 흐름을 결정하기 위해 사용되는데 문법은 아래와 같습니다. if.. 2020. 7. 21.