몬티 홀 시뮬레이션

시간 제한2초메모리 제한512 MB

요약
N개 게임에서 차가 2번이나 3번 문 뒤에 있는 횟수를 센다. 1번 문에서 항상 바꾸므로 그때만 승리한다.
난이도

쉬움10점 중 2점

유형
수학, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

무대 위에 세 개의 닫힌 문이 있다: 1번 문, 2번 문, 3번 문. 이 중 한 문 뒤에는 자동차가 있고, 나머지 두 문 뒤에는 각각 염소가 있다. 제작진은 속임수 없이 자동차가 있을 문을 무작위로 정한다. 사회자만이 자동차가 어디 있는지 안다. 사회자는 참가자에게 문 하나를 고르라고 한다. 이때 자동차는 한 대뿐이므로, 참가자가 고르지 않은 두 문 중 적어도 하나 뒤에는 반드시 염소가 있다.

따라서 사회자는 항상 다음과 같이 할 수 있다: 참가자가 고르지 않은 두 문 중 염소가 있는 문 하나를 열어, 참가자와 관객이 염소를 볼 수 있게 한다. 그러고 나서 사회자는 참가자에게 묻는다: "당신의 문을 아직 닫혀 있는 다른 문으로 바꾸시겠습니까?" 바꾸는 것이 유리할까, 아닐까? 참가자는 당연히 자동차가 있는 문을 원한다.

Paulinho는 참가자가 처음에 고른 문 뒤에 자동차가 있을 확률이 1/3이고, 아직 닫혀 있으면서 참가자가 처음에 고르지 않았던 다른 문 뒤에 자동차가 있을 확률이 2/3이므로 바꾸는 것이 유리하다는 엄밀한 증명을 보았다. Paulinho는 납득하지 못한다. 그의 직관은 어느 쪽이든 상관없고, 아직 닫혀 있는 두 문 모두 확률이 1/2이라고 말한다.

이 문제에서는 Paulinho의 의문을 풀기 위해 이 게임을 수천 번 시뮬레이션하고, 참가자가 자동차를 얻은 횟수를 세려고 한다. 다음을 가정하자.

  • 참가자는 항상 처음에 1번 문을 고른다.
  • 참가자는 사회자가 처음에 고르지 않은 두 문 중 하나를 열어 염소를 보여준 뒤, 항상 문을 바꾼다.

이 조건에서 한 게임에서 자동차가 있는 문의 번호가 주어지면, 참가자가 자동차를 얻을지 여부를 정확히 알 수 있다.

입력

입력의 첫째 줄에는 정수 N (1 ≤ N ≤ 104)이 주어지며, 이는 시뮬레이션의 게임 수를 나타낸다. 다음 N개의 줄 각각에는 정수 1, 2, 3 중 하나가 주어지며, 해당 게임에서 자동차가 있는 문의 번호를 나타낸다.

출력

프로그램은 참가자가 항상 처음에 1번 문을 고르고, 사회자가 처음에 고르지 않은 두 문 중 하나를 열어 염소를 보여준 뒤 항상 문을 바꾼다고 가정할 때, 이 시뮬레이션에서 참가자가 자동차를 얻은 횟수를 나타내는 정수 하나를 한 줄에 출력해야 한다.

예제3

  1. 예제 1

    입력
    5
    1
    3
    2
    2
    1
    
    예상 출력
    3
    
  2. 예제 2

    입력
    1
    1
    
    예상 출력
    0
    
  3. 예제 3

    입력
    15
    3
    2
    3
    1
    1
    3
    3
    2
    2
    1
    2
    3
    2
    1
    1
    
    예상 출력
    10