글
나의/학문 2007/01/09 04:18게임 - 숫자와 4칙을 한번씩만
이번에 어떤 행사에 스텝으로 참여하게 되었는데, 그 행사 중에 게임을 하는 시간이 있다. 어제(8일)는 각 게임의 진행자를 뽑고, 필요한 준비물 중에 협조가 필요한 물건에 대해 도움을 줄 사람을 찾았다.
그리고 다들 각자 소속되어 있는 팀원들과 회의를 하거나 준비하기 위해 각 처소로 흩어졌는데, 필자가 속해있는 팀은 별다른 준비사항이나 회의할 내용이 없기 때문에 메인팀에 합류하여 각 게임에 필요한 문제를 만드는 일을 거들었다. 여러 문제들 중 4개의 1자리 숫자로 10을 만드는 게임의 문제가 있어서 프로그래밍해서 해결하면 되겠다 싶어 본인이 하겠다고 하여 집으로 가지고 왔다.
이 게임의 진행방법은 1~9까지의 한 자리 숫자 4개를 진행자가 제시하면 그 사이에 4칙 연산자(더하기+, 빼기-, 곱하기*, 나누기/)를 넣어 숫자에 연산자를 대입한 결과값이 10이 나오도록 하면 되는것이다. 숫자와 연산자는 한문제 내에서 각각 한번씩만 사용이 가능하다.
7 2 1 5
라는 숫자가 주어졌다면, 답은
7 - 2 + 1 * 5
프로그래밍을 시작했고, 숫자와 연산자를 구하는 부분까지는 비교적 수월하게 진행되었다. 그런데 문제는 이 숫자와 연산자를 구한 뒤에 계산하는데서 발생되는데, 임의의 연산자를 구해서 숫자와 합쳐서 출력하는데는 별 무리가 없었지만, 이 연산의 결과가 10인가 아닌가에 따라 결과를 출력하느냐 아니면 연산자를 다시 임의로 배열하여 연산의 결과를 만드는가로 구분하는 것이다.
이거 꽤 복잡하다. 그래서 무식하게 4개의 겹치지 않은 숫자와 사이에 넣을 연산자를 겹치지 않게 5천개 생성하여 CSV형식으로 만들어저장하였다.
그리고 자동필터로 결과가 10인것만 골라내었다. 대략 100개 가까이 나오는군.
아~ 그 후로 몇 번인가 더 수정을 해보고 다른 자료들을 찾다보니 문자형식의 변수 내용이 계산식일 때 계산해 내는 함수를 만들어 놓은것을 찾아내서 적용해 봤더니 계산이 되는 것이다.
이것으로 10인것만 골라 출력하도록 바꾸어서 해결봤다는 말씀!
결과를 보고 싶으신 분은 이 링크를 누르시라, 주소창에 t=다음에 숫자를 넣으면 결과의 갯수, f=다음에 넣으면 계산한 숫자의 갯수를 정할 수 있다. r=은 결과로 나올 값을 정한다. 기본은 50개 결과를 나오도록 했고, 4개의 숫자로 계산하도록 만들었고 10이 결과가 되도록 만들었다.
'나의 > 학문' 카테고리의 다른 글
| 수행평가의 이해와 오해 (0) | 2007/04/05 |
|---|---|
| 각주 2 : 참고서적 1 (0) | 2007/03/26 |
| 구약 예언서 이해 (0) | 2007/03/24 |
| 요엘이 약속했다? (2) | 2007/03/21 |
| English (0) | 2007/03/20 |
| 게임 - 숫자와 4칙을 한번씩만 (0) | 2007/01/09 |
| James Commentary : The Anchor Bible (0) | 2006/12/14 |
| SNS란 무엇인가? (0) | 2006/12/08 |
| 각주 표기법 (0) | 2006/12/03 |
| 대공중관계(Public Relations) (0) | 2006/11/30 |
| 니치 마케팅(Niche Marketing) (0) | 2006/11/20 |

RECENT COMMENT