SniKuz
스니커즈 정리공간
SniKuz
  • 정리공간 (116)
    • 강의 (35)
      • OS (12)
      • 컴퓨터구조 (5)
      • 컴퓨터네트워크 (6)
      • 컴퓨터 그래픽스 (12)
    • 프로젝트 (8)
      • 애니메이션 스티커(Android) (1)
      • 2023GMTK (1)
      • OTT 게임 (2)
      • 3D MORPG (4)
    • Unity (3)
      • Memory (3)
    • 디자인패턴 (8)
    • 활동 정리 (4)
    • 알고리즘 (48)
    • 기타기록 (6)
      • 여행,음식 (4)
      • 잡다지식 (2)

블로그 메뉴

  • ✨ 깃허브

공지사항

인기 글

태그

  • 니
  • programmers
  • ISTQB

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
SniKuz

스니커즈 정리공간

알고리즘

[Python] 백준 1920번 수 찾기

2022. 10. 10. 14:59

시간제한 : 1초 / 메모리 제한 : 128MB

[문제]

N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.

[예제]

입력

5
4 1 5 2 3
5
1 3 7 9 5

출력

1
1
0
0
1

[코드]

import sys
input = sys.stdin.readline
print = sys.stdout.write
N = int(input())
tmp = set(map(int, input().split()))
M = int(input())
check = list(map(int, input().split()))
for i in check:
    if i in tmp:
        print("%s\n" % "1")
    else:
        print("%s\n" % "0")

시간 : 168ms, 메모리 : 50084kb

[생각]

처음 N개의 정수 뭉치에서 그 다음 M개의 정수 뭉치를 얼마나 빠르게 찾는지에 대한 문제. 처음에는 별 생각없이 tmp도 list로 만들었고, 당연하게도 시간제한 1초를 못넘기고 초과... set이 내부구현이 이진트리?였던것으로 기억해서 변경하고 하니 바로 해결이 됐다...

아예 C++로 처음부터 만들어도 괜찮을 것 같고 다른 방식도 좋을 것 같지만 일단 파이썬으로는 간단하게... 언어 이해도 좀 더 공부를 해야겠다... 2년 동안 거의 대부분을 까먹어버려서 다 새로운 것 같다.

저작자표시 (새창열림)

'알고리즘' 카테고리의 다른 글

백준(1644) - 소수의 연속합  (0) 2022.12.12
프로그래머스 - 신고 결과 받기  (0) 2022.12.07
프로그래머스 부대복귀  (0) 2022.12.06
[Python] 백준 10989 - 수 정렬하기 3  (0) 2022.10.10
[Programmers] Lv1. 시저 암호  (0) 2022.09.28
    '알고리즘' 카테고리의 다른 글
    • 프로그래머스 - 신고 결과 받기
    • 프로그래머스 부대복귀
    • [Python] 백준 10989 - 수 정렬하기 3
    • [Programmers] Lv1. 시저 암호
    SniKuz
    SniKuz
    게임과 관련된 개발, 디자인 등등 + 일상공간

    티스토리툴바