본문 바로가기
Python/파이썬 문법 Tips

[ 파이썬(python) ] 리스트 중 front, back에서부터 target index까지 어느쪽이 더 가까운지 판단하기

by YWTechIT 2021. 6. 25.
728x90

📍 리스트 중 front, back에서부터 target index까지 어느 쪽이 더 가까운지 판단하기

길이가 10인 리스트 arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 일 때, target_index = 3(값은 4)앞에서부터 더 가까운지 아니면 뒤에서부터 가까운지 판단하고 싶을 때 다음과 같은 코드를 작성하면 된다.

728x90

응용문제로는 백준 1021 - 회전하는 큐가있다.

  1. frontback을 나누는 기준은 len(arr) // 2이다.
  2. 만약, target_index가 기준보다 작다면 앞에서부터 가깝고, 기준보다 크다면 뒤에서부터 세는 편이 더 빠르다.

 

 

n = 10
arr = [i for i in range(1, n+1)]
target_index = 3 # 4

if arr.index(target_index) <= len(arr) // 2:
    print(f'front가 더 가깝습니다. 앞쪽과의 거리 = {arr.index(target_index)+1}, 뒤쪽과의 거리 = {len(arr) - (arr.index(target_index)+1)}, 앞 / 뒤를 나누는 거리 = {len(arr) // 2}')
else:
    print(f'back 더 가깝습니다. 앞쪽과의 거리 = {arr.index(target_index)+1}, 뒤쪽과의 거리 = {len(arr) - (arr.index(target_index)+1)}, 앞 / 뒤를 나누는 거리 = {len(arr) // 2}')

👉🏽 front가 더 가깝습니다. 앞쪽과의 거리 = 3, 뒤쪽과의 거리 = 7, 앞 / 뒤를 나누는 기준 = 5
반응형

댓글