[10816] 숫자 카드 2
10816번: 숫자 카드 2
이 문제는 조금 조심할 부분이 있다. 입력, 출력 시 시간까지 꼼꼼히 해야 시간초과가 안 걸리기 때문이다.
현재 가지고 있는 카드들, 카드가 있냐고 묻는 질문에 따라 카드 수를 카운트하면 된다.
우선 입력을 좀더 빠르게 받으려면 import sys 를 하고,
N = int(sys.stdin.readline())
cards = list(map(int, sys.stdin.readline().split()))
M = int(sys.stdin.readline())
questions = list(map(int, sys.stdin.readline().split()))
counts = {}
sys.stdin.readline()
으로 입력을 받는다. input()
과 같은 일을 하고,좀 더 빠르다고 보면 된다.
cards에 현재 가지고 있는 카드 수, 질문들은 questions에 받는다.
counts에는 현재 가지고 있는 카드들의 중복된 카드 수를 계산한다.
for i in cards:
if i not in counts:
counts[i] = 1
else:
counts[i] += 1
counts에 카드 개수가 있어서 각 질문별 카드수를 출력하면 된다!
for i in questions:
if i in counts:
print(counts[i], end=' ')
else:
print(0, end=' ')
풀이
import sys
if __name__ == '__main__':
N = int(sys.stdin.readline())
cards = list(map(int, sys.stdin.readline().split()))
M = int(sys.stdin.readline())
questions = list(map(int, sys.stdin.readline().split()))
counts = {}
for i in cards:
if i not in counts:
counts[i] = 1
else:
counts[i] += 1
for i in questions:
if i in counts:
print(counts[i], end=' ')
else:
print(0, end=' ')
Leave a comment