ez_code   2년 전

문제

토크 쇼 무대에 닫힌 문 세 개가 있습니다: 1번 문, 2번 문, 3번 문이라 합시다. 이 중 문 하나 뒤에는 차가, 나머지 두 문 뒤에는 염소가 있습니다. 프로그램 제작 팀은 속임수 없이 무작위로 차가 있을 문을 뽑습니다. MC만이 차가 어디 있는지 압니다. 참가자는 하나의 문을 고릅니다. 이때 차는 딱 한 대 뿐이므로 참가자가 고르지 않는 두 문 중 하나는 무조건 염소가 있음을 참고합시다. 

따라서 MC는 아래와 같은 행동을 할 수 있습니다: 참가자가 고르지 않은 두 문 중, 염소가 있는 문을 열어 참가자와 관객이 염소를 확인할 수 있게 합니다. MC는 참가자에게 묻습니다 : "닫혀있는 다른 문으로 바꾸시겠습니까?" 바꾸는 게 이득일까요, 아닐까요? 물론 참가자는 차가 있는 문을 고르고 싶어합니다!

파울리뉴는 참가자가 처음 고른 문 뒤에 차가 있을 확률은 1/3이고 참가자가 고르지 않고 여전히 닫혀 있는 문에 차가 있을 확률은 2/3이므로 바꾸는 게 이득이라는 증명을 알고 있습니다. 하지만 여전히 그의 직관은 닫혀 있는 두 문 중 어떤 것을 선택하든 확률은 1/2라고 말하고 있습니다.

이 문제에서 파울리뉴의 의심을 매듭짓기 위해, 토크 쇼의 게임을 수천 번 시뮬레이션하며 참가자가 몇 번 차를 획득하는지 세어보려 합니다. 아래의 정보를 가정합시다:

- 참가자는 항상 1번 문을 선택합니다;

- MC가 처음 고르지 않은 두 문 중 하나를 열어 염소를 보여주면, 참가자는 항상 선택을 바꿉니다.

 이러한 조건에서 차가 있는 문의 번호가 주어졌을 때, 참가자가 차를 얻을 수 있는지 없는지 판별합시다.

입력

첫 줄에 시뮬레이션하는 게임의 수 N (1 <= N <= 10 ^ 4)이 주어집니다. 다음 N개의 줄에는 각각 차가 있는 문의 번호를 나타내는 1, 2, 3 중 하나의 정수가 입력됩니다.

출력

참가자가 항상 1번 문을 선택하고 MC가 선택되지 않은 두 문 중 하나를 열어 염소를 보여주면 선택을 바꾼다고 가정할 때, 시뮬레이션 상에서 참가자가 차를 획득하는 횟수를 나타내는 하나의 정수를 출력합니다. 

댓글을 작성하려면 로그인해야 합니다.