μ •κΈ€/TIL

[TIL] - 2023.04.13

Casteira 2023. 4. 21. 00:06

πŸ‘₯ 이진 탐색

- 배열이 μ •λ ¬λ˜μ–΄ μžˆμ–΄μ•Ό ν•˜λ©°, ν•˜λ‚˜μ˜ λ°°μ—΄μ—μ„œ 반반 μͺΌκΉ¨μ„œ 값을 μ°ΎλŠ” 탐색이닀.
- μ‹œκ°„ λ³΅μž‘λ„λŠ” 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μ£Όμ°¨ λ¬Έμ œλ“€ μ „λΆ€ μ™„μ „ νƒμƒ‰μœΌλ‘œ ν•΄κ²°ν–ˆκ³ , λ‹€μŒ 이뢄 탐색, μŠ€νƒ, 큐, λΆ„ν•  정볡 λ¬Έμ œλ„ λ§ˆμ°¬κ°€μ§€λ‘œ μ—¬λŸ¬ λ¬Έμ œλ“€μ„ ν’€μ–΄λ³΄λ©΄μ„œ 일단 λ¬Έμ œμ— μ΅μˆ™ν•΄μ Έμ•Ό ν•  것 κ°™λ‹€.