추측 게임 I
면접 대비시간 제한1초메모리 제한128 MB
4자리 비밀 숫자와 추측을 자리별로 비교해 같은 자리 일치를 원, 자리가 다른 일치를 네모로 세되, 중복 숫자는 한 번씩만 짝지어 센다.
문제
험준한 산맥을 오랫동안 헤쳐 온 끝에, 빌보와 난쟁이들은 수학을 좋아하는 난쟁이 왕이 만든 퍼즐리아(Puzzlia) 광산의 서문(西門) 앞에 도착했다. 이 문은 비밀(secret)이라 부르는 네 자리 숫자를 정확히 맞혀야만 열린다.
문 위에는 도형 8개가 있는데, 원 4개와 사각형 4개다. 추측한 숫자를 소리 내어 말할 때마다 아래 규칙에 따라 일부 도형에 불이 켜진다. 말한 숫자를 추측(guess)이라 하고, 추측과 비밀을 각 자리끼리 비교한다.
- 추측의 어떤 자리 숫자가 같은 자리에 있는 비밀의 숫자와 같으면 원 하나에 불이 켜진다.
- 추측의 어떤 자리 숫자가 다른 자리에 있는 비밀의 숫자와 같으면 사각형 하나에 불이 켜진다.
비밀과 추측에는 같은 숫자가 여러 번 나올 수 있다. 중복은 다음과 같이 처리한다. 비밀의 각 숫자는 추측의 숫자 하나와만 짝지을 수 있고(그 반대도 마찬가지), 같은 자리에서의 정확한 일치가 우선한다. 따라서 먼저 같은 자리의 정확한 일치(원)를 모두 센 다음, 아직 짝지어지지 않은 숫자들 중에서 자리가 다른 일치(사각형)를 찾는다.
규칙 예시:
- 비밀 = 1234, 추측 = 1357: "1"은 같은 자리 일치(원 1개), "3"은 다른 자리 일치(사각형 1개)다. 나머지 두 숫자는 아무것도 맞지 않는다.
- 비밀 = 1234, 추측 = 1122: 첫 번째 "1"은 같은 자리 일치(원 1개)다. 두 번째 "1"은 비밀의 유일한 "1"이 이미 짝지어졌으므로 아무것도 맞지 않는다. 첫 번째 "2"는 다른 자리 일치(사각형 1개)다. 결과: 원 1개, 사각형 1개.
- 비밀 = 1311, 추측 = 1122: 1번 자리에서 정확히 일치해 원 1개, 자리가 다른 "1" 하나로 사각형 1개. 결과: 원 1개, 사각형 1개.
- 비밀 = 0011, 추측 = 0213: 정확한 일치 2개, 자리가 다른 일치는 없다. 결과: 원 2개, 사각형 0개.
비밀과 추측이 주어질 때, 원과 사각형이 각각 몇 개 켜지는지 구하라.
입력
첫째 줄에 테스트 케이스의 수 ()가 주어진다.
다음 개의 줄에는 각각 두 정수가 주어지며, 비밀 다음에 추측이 온다. 두 정수는 모두 를 만족한다.
네 자리보다 짧은 수가 있을 수 있으므로, 비교하기 전에 앞을 0으로 채워 네 자리로 만든다(예를 들어 정수 은 로 취급한다).
출력
각 테스트 케이스마다 다음 형식에 정확히 맞추어 한 줄을 출력한다.
For secret = S and guess = G, C circles and D squares will light up.
여기서 S와 G는 입력에서 읽은 정수 값 그대로의 비밀과 추측이고, C는 원의 개수(같은 자리 일치), D는 사각형의 개수(다른 자리 일치)다.