2023.03.11

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=' ')

Tags:

Categories:

Updated:

Leave a comment