로또 30
문제
"로또 30"에 참여하는 사람은 하나의 로또를 구입할 때, 로또 번호로 1부터 30까지의 자연수 중에서 중복 없이 6개의 수를 선택한다. 자신이 선택한 6개의 수가 발표되는 로또 당첨 번호 6개와 일치하는 경우 1등 당첨금을 수령할 수 있다.
이때, 선택한 수의 순서와는 상관없이 6개의 모든 수의 번호가 겹친다면 1등 당첨이다. 예를 들어 하나의 로또를 구매하여 [1, 7, 8, 24, 5, 16]을 선택했을 때, 발표된 로또 당첨 번호 6개가 [16, 5, 1, 7, 8, 24]라면, 당첨된 것으로 이해할 수 있다. 반면에 발표된 로또 당첨 번호 6개가 [1, 7, 8, 24, 5, 15]라면, 당첨되지 않은 것으로 이해할 수 있다.
1회부터 N회까지 매 회마다 하나씩 로또를 구매하되, 매번 같은 번호 구성으로만 로또를 구매했다고 가정하자. 이후에 N회에 대한 로또 당첨 번호가 주어졌을 때, 전체 당첨 횟수가 몇 회인지 계산해주는 프로그램을 작성하여라.
입출력 예시
예시 1
입력
3, [1, 7, 8, 24, 5, 16], [[1, 7, 8, 24, 5, 16], [16, 5, 1, 7, 8, 24], [1, 7, 8, 24, 5, 15]]
출력
2
예시 2
입력
5, [1, 2, 3, 4, 5, 6], [[1, 2, 3, 4, 5, 30], [1, 2, 3, 4, 5, 20], [15, 2, 3, 4, 22, 6], [3, 5, 9, 11, 23, 6], [6, 5, 4, 3, 2, 1]]
출력
1
입력 조건
가장 먼저 로또 참여 횟수 N이 자연수로 주어진다. (N은 300,000보다 작거나 같은 자연수다.)
이어서 구매할 때 선택한 로또 번호 6개의 정보가 담긴 배열 selected가 주어진다. 이때 각 로또 번호는 1부터 30까지의 자연수 중 하나에 해당하며 서로 중복되지 않는다.
이어서 1회부터 N회까지 매 회에 대한 로또 당첨 번호 정보가 담긴 2차원 배열 lottos가 주어진다. 매 회 로또 당첨 번호에 속하는 6개의 각 로또 당첨 번호는 서로 중복되지 않으며, 1부터 30까지의 자연수 중 하나이다.
출력 조건
N회에 대한 로또 당첨 번호가 주어졌을 때, 전체 당첨 횟수가 몇 회인지 반환한다.
요구사항
- solution(N, selected, lottos) 함수를 만들고 답을 반환해야 합니다
- 쓸 수 있는 말은 파이썬, 자바스크립트입니다
- 메모리 제한은 256MB입니다. 브라우저에서는 재지 않고 적기만 합니다
- 시간 제한은 출제자의 정답 코드를 같은 런타임에서 재서 정합니다
- 이 문제는 프롬프트가 아니라 코드를 냅니다. 그 코드는 이 기기의 브라우저에서 돌고, 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다. 실행 시간은 각자 기기가 적어 보내는 값이라, 코드와 기기 정보를 순위표에 같이 내걸어 둡니다.
- 출력이 글자 하나까지 기대값과 같아야 합니다. 줄 안의 빈칸은 다른 글자와 똑같이 봅니다.
- 케이스는 15개이고, 그 가운데 2개는 입력과 기대 출력을 함께 보여 줍니다. 나머지는 제출할 때만 쓰이고 화면에는 보여 주지 않습니다.
- 케이스 15개를 전부 통과해야 해결입니다.
예시
공개 케이스 2개입니다. 채점에는 숨은 케이스가 함께 쓰입니다. 케이스 15개를 전부 통과해야 해결입니다.
3, [1, 7, 8, 24, 5, 16], [[1, 7, 8, 24, 5, 16], [16, 5, 1, 7, 8, 24], [1, 7, 8, 24, 5, 15]]
2
5, [1, 2, 3, 4, 5, 6], [[1, 2, 3, 4, 5, 30], [1, 2, 3, 4, 5, 20], [15, 2, 3, 4, 22, 6], [3, 5, 9, 11, 23, 6], [6, 5, 4, 3, 2, 1]]
1
참고 사항
풀이에 도움이 되는 배경입니다. 지켜야 하는 규격은 위의 입출력 조건과 요구사항에 있습니다.
원본에서 모의고사 6회 1번입니다.
풀이
코드는 이 기기에서돕니다. 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다.
제출은 로그인 하셔야 됩니다. 공개 케이스로 돌려보는 것은 로그인 없이도 됩니다.
공개 케이스 2개로 돌려보기가 됩니다. 제출하면 숨은 케이스까지 돕니다.
이 문제를 푼 사람
시간은 푸는 데 걸린 시간입니다. 입력을 읽는 시간은 푸는 분이 어쩔 수 없는 값이라 빼고 셉니다. 그리고 이 값은 각자 기기가 적어 보내는 값이라, 어느 기기에서 쟀는지 같이 적어 둡니다.
입력을 읽는 데 2.25초 (순위에서 뺀 시간입니다)
이 분이 코드를 비공개로 두셨습니다.