์๊ฐ ๋ณต์ก๋๊ฐ ์๋นํ ์ค๋ค.
์ต์ ํ ๋ฌธ์ ๋ฅผ ๊ฒฐ์ ๋ฌธ์ ( ์ ํน์ ์๋์ค ๋ก ๋ตํ๋ ๋ฌธ์ ) ๋ก ๋ฐ๊พธ์ด ํด๊ฒฐํ๋ ํ๋ผ๋ฉํธ๋ฆญ ์์น์ ํ์ ์ด์งํ์์ ์ด์ฉํ์ฌ ํด๊ฒฐ ๊ฐ๋ฅ ์ฃผ์ด์ง ์๊ฐ ํฐ ์๋ผ๋ฉด ๊ฐ์ฅ ๋จผ์ ์ด์งํ์์ ๋ ์ฌ๋ฆฌ์
Mid ( ์ค๊ฐ์ ) ์ด ํต์ฌ
์ข
๋ฃ์กฐ๊ฑด์ Start > end ์ผ ๋ ! ๋ ์ด์ ์ด์งํ์์ ์๋ฏธ๊ฐ ์์
def binary_search(array, target, start, end):
if start > end: # ์ด๊ฒ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๊ท์ด๊ธฐ ๋๋ฌธ์, ์ฌ๊ทํด์ ๋ค์ด์จ ๊ฒ์ ๊ณ ๋ คํ์ฌ ์ฒ์ ์กฐ๊ฑด์ ์ค์ ํด์ค์ผ ํ๋ค.
return None
mid = (start + end) //2 # ์ค๊ฐ์ ์ ์ธ๋ฑ์ค
if array[mid] == target: # ์ฐพ์ ๊ฒฝ์ฐ ์ธ๋ฑ์ค ๋ฐํ
return mid
elif array[mid] > target: # ์ฐพ๊ณ ์ ํ๋ ๊ฐ์ด ์ค๊ฐ๋ณด๋ค ์์ ๊ฒฝ์ฐ, ์ค๊ฐ์ ์ ์ผ์ชฝ ํ์ธ
return binary_search(array,target,start,mid-1)
else:
return binary_search(array,target,mid+1,end)
n, target = list(map(int,input().split()))
array = list(map(int,input().split()))
rst = binary_search(array,target,0,n-1)
if rst == None:
print('์์๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.')
else:
print(rst + 1)
def binary_search(array,target,start,end):
while start <= end:
mid = (start + end) // 2
if array[mid] == target:
return mid
elif array[mid] > target:
end = mid -1
else:
start = mid + 1
return None
n, target = list(map(int,input().split()))
array = list(map(int,input().split()))
rst = binary_search(array,target,0,n-1)
if rst == None:
print('์์๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.')
else:
print(rst + 1)