게임 24(game of 24)는 정수 네 개가 주어지면, 이 숫자들을 한 번씩만 사용해서 사칙연산으로 24를 만들어내는 것이 목표다. 이 게임은 프롬프트 엔지니어링 방법 중에 하나인 ToT(아래 참고)를 읽으며 알게 되었다.
예를 들어 4, 4, 6, 8이 주어지면 아래 순서로 사칙연산을 통해 숫자 24를 만들어 낼 수 있다.
(스텝 1)
4, 4, 6, 8 중에서 4와 8을 선택하고 + 연산
4 + 8 = 12
따라서 우리가 가진 숫자는 4, 6, 12
(스텝 2)
4, 6, 12 중에서 4와 6을 선택하고 - 연산
6 - 4 = 2
따라서 우리가 가진 숫자는 2, 12
(스텝 3)
2와 12를 선택하고 * 연산
2 * 12 = 24
따라서 우리가 가진 숫자는 24
최종적으로 (4 + 8) * (6 - 4) = 24 가 정답이 된다.
이 경우는 답이 있는 문제지만 그렇지 않은 경우도 있다. 1, 1, 5, 13 같은 경우가 그렇다.
위에서 문제를 풀이할 때는 한 번에 정답 연산을 골라냈지만, 정답 연산 순서가 바로 떠오르지 않을 수 있다. 그럴 때는 모든 숫자에 가능한 모든 연산 방법을 적용해보고 24를 만들어낼 수 있는지 확인해보면 된다. 예를 들어 파이썬으로 이런 해법을 찾으려면 아래와 같이 코드를 만들어 볼 수 있다.
만약 웹이나 휴대폰 어플리케이션으로 게임을 해보고 싶으면, 링크(https://www.4nums.com/)에서 즐길 수 있다.
참고
Yao, S., Yu, D., Zhao, J., Shafran, I., Griffiths, T., Cao, Y., & Narasimhan, K. (2024). Tree of thoughts: Deliberate problem solving with large language models. Advances in Neural Information Processing Systems, 36.
'노트정리 > 알고리즘 놀이' 카테고리의 다른 글
네모로직 알고리즘 - 다양한 언어별 풀이 코드 (0) | 2019.09.09 |
---|---|
DBSCAN 자바 구현 실습 소스 코드 (4) | 2017.10.17 |
바이오인포매틱스 프로그래밍 연습 사이트 (0) | 2017.05.08 |
2차원 공간에서 퍼지 클러스터링(fuzzy clustering) 자바 구현 (0) | 2016.06.03 |
블로그의 스팸 덧글 검출하는 방법 - 자카드 유사도(Jaccard similarity). 자바 구현. (2) | 2016.06.03 |
Teofilo F. Gonzalez (2007), Handbook of Approximation Algorithms and Metaheuristics, Taylor & Francis Group. (0) | 2016.05.24 |
삽입 정렬(insertion sort) 자바로 구현. (0) | 2015.12.31 |
Skyline operator 세미나 프리젠테이션 자료 (2) | 2015.08.08 |