목차
Prolog: Find Criminal (범인을 찾아라)
6명의 용의자들이 서로를 범인이라고 지목하고 있다. 이 중 3명만 범인이라고 할 때, 다음 대화를 참고하여 범인을 가려내시오. 주의할 점은 범인은 항상 거짓말만 하고, 범인이 아닌 사람은 항상 참인 말만 한다.
2015-12-05#프로그래밍
💡 이 글은 작성된지 1년 이상 지났습니다. 정보글의 경우 최신 내용이 아닐 수 있음에 유의해주세요.
6명의 용의자들이 서로를 범인이라고 지목하고 있다. 이 중 3명만 범인이라고 할 때, 다음 대화를 참고하여 범인을 가려내시오. 주의할 점은 범인은 항상 거짓말만 하고, 범인이 아닌 사람은 항상 참인 말만 한다.
더욱 간결한 방법이 있다면 언제든지 알려주세요.
is_equal(A, B):- X is A-B, X==0.
is_not_equal(A, B):- X is A-B, not(X==0).
find_criminal(Group):-
(member(a, Group) -> A=1; A=0),
(member(b, Group) -> B=1; B=0),
(member(c, Group) -> C=1; C=0),
(member(d, Group) -> D=1; D=0),
(member(e, Group) -> E=1; E=0),
(member(f, Group) -> F=1; F=0),
(member(a, Group) -> is_not_equal(B+D, 1); is_equal(B+D, 1)),
(member(b, Group) -> is_not_equal(C+E, 1); is_equal(C+E, 1)),
(member(c, Group) -> B=0; B=1),
(member(d, Group) -> A=0; A=1),
(member(e, Group) -> is_not_equal(A+B, 0); is_equal(A+B, 0)),
(member(f, Group) -> is_not_equal(A+B, 1); is_equal(A+B, 1)),
is_equal(A+B+C+D+E+F, 3).
관련된 글
Rails와 GitHub Actions에 커버리지 레포트를 달아보자
이 블로그의 CMS이기도 한 Shiori를 대폭 리팩토링하면서 테스트가 얼마나 잘 작성되어있는지 궁금해졌습니다.
Rails Global ID로 전역 객체 식별하기
Global ID는 Rails의 모든 객체를 식별할 수 있는 URI(Uniform Resource Identifier)입니다.
Ruby on WebAssembly: 살짝 맛보기
Ruby 3.2에 추가된 WebAssembly 지원을 간단하게 테스트해봅시다.
본 사이트의 저작물은 별도의 언급이 없는 한 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
LYnLab, 2011 - 2024.
작성한 댓글은 giscus를 통해 GitHub Discussion에 저장됩니다.