[Python] 다른 사람 마음읽기 알고리즘
Srini Devadas의 '퍼즐로 배우는 알고리즘 with 파이썬' 3번째 퍼즐을 풀어보았습니다. 당신이 마술사이고, 관람객 5명이 52장의 카드 중 무작위로 뽑은 카드를 맞추고 싶다면 어떻게 해야할까요? 4개의 카드를 먼저 마술사에게 공개한다면, 그 나머지 한 장을 맞출 수 있을까요? 정답은 "그렇다"입니다. 나머지 한 장의 카드를 어떻게 알 수 있을까요? 트릭은 조수가 마술사에게 보여준 4장의 카드의 순서에 숨어있습니다. 먼저, 조수는 5개의 카드 중 기호가 같은 두개의 카드를 먼저 고릅니다. 카드의 종류는 하트, 다이아, 클로버, 스페이스밖에 없기 때문에 무조건 두개 이상의 같은 종류의 카드가 존재합니다. 예를 들어, 관람객이 뽑은 카드가 10♥, 9◆, 3♥, Q♠, J◆라고 하면 조수는 먼저 ..
더보기
[Python] 모두 똑같이 만들기 알고리즘 연습문제
영진닷컴의 퍼즐로 배우는 알고리즘 with 파이썬에서 첫번째 퍼즐 '모두 똑같이 만들기'!! 여기에서 연습문제 3번을 나름 낑낑거리면서 풀었는데 적절한지는 모르겠다. 연습문제 3) 모자를 쓰고 있지 않은 'H'들을 제외한 'F', 'B'에게만 적용되는 모자 정렬 규칙을 완성하라. cap3 = ['F', 'F', 'B', 'H', 'B', 'F', 'B', 'B', 'B', 'F', 'H', 'F', 'F'] 출력결과 Person in position 2 flip your cap! Persion in position 4 flip your cap! People in positions 6 through 8 flip your caps! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ..
더보기
[Python] '모두 똑같이 만들기' 알고리즘
Srini Devadas의 '퍼즐로 배우는 알고리즘 with 파이썬'에서 첫 번째 퍼즐 '모두 똑같이 만들기'를 풀어보았습니다. 1. 연이어 서있는 같은 '특징'을 가진 사람들 찾기 앞을 향해 놓여진 모자(F)와 그 나머지(B)가 일렬로 배열되어 있을 때, '어떻게 효율적으로 같은 방향으로 정렬할 수 있을까?'라는 문제를 풀어보는 문제입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 cap1 = ['F', 'F', 'B', 'B', 'B','F', 'B', 'B', 'B','F', 'F', 'B','F'] cap2 = ['F', 'F', 'B', 'B', 'B','F', 'B', 'B', 'B','F', 'F',..
더보기