사용자 도구

사이트 도구


ps:problems:boj:1920

수 찾기

ps
링크acmicpc.net/…
출처BOJ
문제 번호1920
문제명수 찾기
레벨실버 4
분류

기초

시간복잡도O(n+m)
인풋사이즈n<=100,000, m<=100,000
사용한 언어Python
제출기록48292KB / 180ms
최고기록46900KB / 120ms
해결날짜2021/07/13
태그

21단계

풀이

  • 그냥 기본 문제.
  • 분류에는 이분 탐색으로 되어있는 것으로 보아, 정렬 후 이분탐색으로 숫자를 찾는 O(mlogn) 해법을 의도한것 같다. 그러나 set을 쓰면 코드도 간단하고 시간도 O(m)으로 더 빠르다. n개의 숫자를 읽어서 set을 만드는 시간까지 포함하면 총 시간복잡도는 O(n+m).

코드

"""Solution code for "BOJ 1920. 수 찾기".

- Problem link: https://www.acmicpc.net/problem/1920
- Solution link: http://www.teferi.net/ps/problems/boj/1920
"""


def main():
    N = int(input())  # pylint: disable=unused-variable
    A = {int(x) for x in input().split()}
    M = int(input())  # pylint: disable=unused-variable
    nums = [int(x) for x in input().split()]

    print('\n'.join(('1' if num in A else '0') for num in nums))


if __name__ == '__main__':
    main()

토론

댓글을 입력하세요:
C J M T X
 
ps/problems/boj/1920.txt · 마지막으로 수정됨: 2021/07/19 15:32 저자 teferi