백준 1920번 - 수 찾기

백준 1920번 문제 바로가기 첫 번째 시도: 시간초과 ㅠㅅㅠ _ = input() target = list(input().split()) _ = input() for i in input().split(): if i in target: print("1") else: print("0") Python 시간초과 해결하기 기본적으로 Python은 다른 언어에 비해서 느린 편이다. (물론 상대적으로 말이다!) JAVA나 C는 컴파일러가 따로 있어서 컴파일 한 파일만 후루룩 실행시키면 되지만, Python은 컴파일 없이 line-by-line해석하기 때문에 속도 차이가 발생한다. 그래서 백준에서 문제를 해결하다보면 종종 시간초과 문제에 봉착하게 된다. 이를 해결하기 위한 방법은 다음과 같다. 입력을 sys 모듈의 sys.stdin.readline() 함수를 사용하자. 단 띄어쓰기(\n)도 함께 받아오는 것에 주의! 최대한 반복문을 줄이자. 재귀함수의 경우 메모이제이션 기법을 활용하자! 그럼 이제 반영해봅시다아아아 두 번째 시도: 여전히 시간초과… import sys _ = sys.stdin.readline() target = list(sys.stdin.readline().split()) _ = sys.stdin.readline() for i in sys.stdin.readline().split(): if i in target: print("1") else: print("0") 또 시간초과에 빠졌다. 아무래도 input을 총 4번 받아보니 문제가 발생하는듯. 이걸 한번에 받고 나눌 수 있을까? ...

2023-4-19 · 2 min · 276 words · Junha