본문 바로가기
Algorithm

[구현] 백준 10815 숫자 카드 - 파이썬(Python)

by jangThang 2023. 7. 1.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    10815번: 숫자 카드

    첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     해당 숫자가 기존 그룹에 있는지 없는지 판별하는 문제입니다.

     

     

    3. 코드

    import sys
    input = sys.stdin.readline
    
    # 입력
    N = int(input())
    card = list(map(int, input().split()))
    
    M = int(input())
    lst = list(map(int, input().split()))
    
    # 출력
    for i in lst:
        if i in card:
            print(1, end=" ")
        else:
            print(0, end=" ")

     단순 리스트로 in 연산을 하면 시간 초과가 납니다.

     

     

    import sys
    input = sys.stdin.readline
    
    # 입력
    N = int(input())
    card = list(map(int, input().split()))
    
    M = int(input())
    lst = list(map(int, input().split()))
    
    dictionary = {}
    for i in range(N):
        dictionary[card[i]] = -1
    
    # 출력
    for i in lst:
        if i in dictionary:
            print(1, end=" ")
        else:
            print(0, end=" ")

     파이썬에는 이런 작업에 특화된 자료형, dictionary가 있죠.

     딕셔너리를 이용하면 해결할 수 있습니다.

     

     

    star가 되고나서 Tistory

    반응형

    댓글