๐ฅ ์ด์ง ํ์
- ๋ฐฐ์ด์ด ์ ๋ ฌ๋์ด ์์ด์ผ ํ๋ฉฐ, ํ๋์ ๋ฐฐ์ด์์ ๋ฐ๋ฐ ์ชผ๊นจ์ ๊ฐ์ ์ฐพ๋ ํ์์ด๋ค.
- ์๊ฐ ๋ณต์ก๋๋ O(logN)์ด๋ค
์ด์ง ํ์์ ๊ธฐ๋ณธ ํ
from sys import stdin as s
s = open('input.txt','rt')
N, M = list(map(int,s.readline().split()))
arr = list(map(int,s.readline().split()))
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)
result = binary_search(arr,M,0,N-1)
if result == "None":
print("์กด์ฌํ์ง ์์ต๋๋ค.")
else:
print(result + 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()))
result = binary_search(array, target, 0, n - 1)
if result is None:
print('์์๊ฐ ์กด์ฌ X')
else:
print(result + 1)
๋ธ๋ฃจํธ ํฌ์ค ๋ฌธ์ ๋ฆฌ์คํธ
NO | LV | ์ ํ | ์ ๋ชฉ | ๋น๊ณ |
---|---|---|---|---|
1110 | B1 | ๋ธ๋ฃจํธ ํฌ์ค | ๋ํ๊ธฐ ์ฌ์ดํด | ์ฑ๊ณต |
9095 | S3 | ๋ธ๋ฃจํธ ํฌ์ค | 1,2,3 ๋ํ๊ธฐ | ์ฑ๊ณต |
1182 | S2 | ๋ธ๋ฃจํธ ํฌ์ค | ๋ถ๋ถ ์์ด์ ํฉ | ์ฑ๊ณต |
์์ ์ผ์ ์ต์ ์ ๋คํ๋ผ
" ํ๋ณต์ ์์ ์ผ์ ํตํด ๊นจ๋ซ๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๊ฒฐ์ฝ ์์ ์ผ์ด ์๋๋ค. "
- ์ ๋ ผ, ๋์ค๊ฒ๋ค์ค์ ๊ฐ์์์ ์ธ์ฉ, ํ์ํ ์ฒ ํ์๋ค์ ์ถ 7. 1. 26
์ข์ ์ฌ๋์ด๋ผ๋ ํํ์ ๊ทธ๊ฐ ํ ๋ง ๋๋ฌธ์ด ์๋๋ค. ๊ทธ๊ฐ ํํ ๋ฐ๋์งํ ํ๋ ๋๋ฌธ์ ๋ง๋ค์ด์ง๋ค. ์ด๋ ๋ง๋ฒ ๊ฐ์ ๋จ ํ๋ฒ์ ํ๋์ด ์ด๋ฃจ์ด ๋ด๋ ๊ฒ์ด ์๋๋ผ ๋ฐ๋์งํ ์ ํ์ ๋์ ์ด ๋ง๋ค์ด ๋ด๋ ๊ฒ์ด๋ค.
๋ ์์ ์๋ ์ผ์ ์ง์คํ๋ผ
" ๋งค์ผ๋งค์ผ ๋ฅ์ณ์ฌ ๋ชจ๋ ์ผ์ ๋ก๋ง์ธ๋ค์ฒ๋ผ ๊ฐ๊ฑดํ ๋ง๋ฏ์ผ๋ก ์ฒ๋ฆฌํ๋ผ. ์๊ฒฉํ๊ณ ๋จ์ํ ์์, ์ ์ ๊ณผ ์์ , ๊ทธ๋ฆฌ๊ณ ๊ณตํ๋ฌด์ฌํจ์ผ๋ก ๋ํ๋ผ, ์ด๊ฒ ์ธ์ ๋ค๋ฅธ ์ฌํญ์ ์๊ฐํ์ง ๋ง๋ผ. ํฉ๋ฆฌ์ ์ด์ฑ์ด ๊ฐ์ ์ ํ๋๋ฆฌ์ง ์๋๋ก ํ๊ณ , ์ก๋ ์ ๋งค์ด์ง ์์ผ๋ฉฐ, ๊ทน์ ์ธ ์ํฉ๊ณผ ์๋ง์ฌ, ๊ณต์ ํ ๋ชซ์ ๋ํ ๋ถํ์ ์ ์ฌ์๋ผ. ๋ง์ง๋ง์ธ ๊ฒ์ฒ๋ผ ์ฃผ์ด์ง ์ผ์ ์ ๊ทผํ๋ผ. ์ด ๋ช๊ฐ์ง๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ๋ง์ผ๋ก๋ ํ์๋ก์ด ์ถ๊ณผ ๋ ์คํ ์ธ์์ ์์ฑํ ์ ์์ ๊ฒ์ด๋ค. ์ด๋ฅผ ๋์์์ด ์ค์ฒํ ์ ์๋ค๋ฉด ์ ๋ ์ฐ๋ฆฌ์๊ฒ ๋ ๋ง์ ๊ฒ์ ์๊ตฌํ์ง ์๋๋ค. "
- ๋ง๋ฅด์ฟ ์ค ์์ฐ๋ ๋ฆฌ์ฐ์ค, ๋ช ์๋ก, 2.5
์๋ง์ ์ฅ์ ๋ฌผ ์์์ ๋ค๋ฅธ ์ฌ๋์ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ๋ฌต๋ฌตํ ๋์ ๊ธธ์ ๊ฑธ์ด๊ฐ ์ ์์ด์ผ ํ๋ค.
๋ง์๋ง์ธ ๊ฒ์ฒ๋ผ ์ฃผ์ด์ง ๊ณผ์ ์ ๋์ ํ๋ผ.
์ฌ๋
์ด ๋ผ์ด๋ค์ง ์๋ ํ ์ฐ๋ฆฌ์๊ฒ ์ฃผ์ด์ง ๊ณผ์ ๋ ์ธ์ ๋ ๋จ์ํ๋ค.
๋ชจ๋ ๊ฒ์ ์ ํ์๋ ์๋ค.
" ๋ฐ์ ํ๊ณ ์ ํ๋ค๋ฉด ์ธ์ ์ธ ๋ฌธ์ (์ฌ๋ฌผ,ํํ)์ ๋ฌด๊ฐ๊ฐํด์ผ ํ๊ณ ๊ทธ ์์์ ์ด๋ฆฌ์์์ ๋ณผ ์ ์์ด์ผ ํ๋ค. ๋ง์ด ์๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ ๊ฒฝ๊ณํ๋ผ. ๋๊ตฐ๊ฐ ๋น์ ์ ์ค์ํ ์ฌ๋์ผ๋ก ๊ฐ์ฃผํ๋ค๋ฉด, ์ค์ค๋ก๋ฅผ ๋ถ์ ํ๋ผ "
- ์ํฝํ ํ ์ค, ์ฅ์ผ์ด๋ฆฌ๋์จ, 13a
์ ์ฌ์ ์ํ์ ๋ ์ด์ ํฅ๋ถํ์ง๋ ๋ถ๋ ธํ์ง๋ ์์ผ๋ ค๋ฉด ์ผ๋ง๋ ๋ ํด์์ ์ทจํด์ผ ํ ๊น?
๋น์ฅ ๋์์ ์ผ์ ์ง์คํ์. ๋ ์์ ์๋ ์ผ์ ์ง์ค์ ํ๋ฉด์ ์์ ์ผ๋ ์ต์ ์ ๋คํ์. ์์ํ ํธ์์ ํ ๋ฐฉ์ธ ํ ๋ฐฉ์ธ ๋จ์ด์ง๋ ๋ฌผ๋ฐฉ์ธ์ด ํฐ ๋ฌผ๊ฒฐ์ด ๋ ๊ฒ์ด๋ค.
DFS, BFS๋ ๋ธ๋ฃจํธํฌ์ค ํ๋ ๋ฐฉ๋ฒ ์ต์์น ์์๋๋ฐ ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ํ๋ค๋ณด๋ ์ํ 1์ฃผ์ฐจ ๋ฌธ์ ๋ค ์ ๋ถ ์์ ํ์์ผ๋ก ํด๊ฒฐํ๊ณ , ๋ค์ ์ด๋ถ ํ์, ์คํ, ํ, ๋ถํ ์ ๋ณต ๋ฌธ์ ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๋ฌ ๋ฌธ์ ๋ค์ ํ์ด๋ณด๋ฉด์ ์ผ๋จ ๋ฌธ์ ์ ์ต์ํด์ ธ์ผ ํ ๊ฒ ๊ฐ๋ค.