반응형
1. 문제
https://www.acmicpc.net/problem/1620
2. 풀이
3. 구현
import sys
# sys.stdin=open('input.txt')
sys.setrecursionlimit(10**8)
# @profile
def main():
n,m = map(int, sys.stdin.readline().strip().split())
# lis=[0]*(n+2)
lis=[]
lis_digit=[0]*(n+2)
idx=0
# @profile
def binary(tmp, lis):
tmp = str(tmp)
le = 0
ri = n+1
while le<=ri:
mid = (le+ri)//2
if lis[mid][0]==tmp:
break
elif lis[mid][0]<tmp:
le = mid+1
else:
ri = mid-1
return lis[mid][1]
lis.append(("",0))
while idx<n:
tmp = sys.stdin.readline().strip()
lis.append((str(tmp), int(idx)+1))
lis_digit[int(idx)]=str(tmp)
idx+=1
lis = sorted(lis, key=lambda x: x[0])
while m:
m-=1
tmp = sys.stdin.readline().strip()
if tmp.isdigit():
sys.stdout.write(str(lis_digit[int(tmp)-1])+'\n')
else:
ans = binary(tmp, lis)
sys.stdout.write(str(ans)+'\n')
if __name__=='__main__':
main()
반응형
'PS > 백준' 카테고리의 다른 글
백준 2250번: 트리의 높이와 너비 python 파이썬 (0) | 2021.08.06 |
---|---|
[반례모음] 백준 2839번: 설탕 배달 python 파이썬 (0) | 2021.08.06 |
[테스트케이스 추가] 백준 1719번: 택배 파이썬, python (0) | 2021.08.06 |
[테스트케이스추가] 백준 1269번: 대칭 차집합 python 파이썬 (0) | 2021.08.06 |
백준 11279번: 최대힙 파이썬 (0) | 2021.08.06 |
댓글