본문 바로가기
반응형

복습18

Search algorithm(검색, 탐색 알고리즘) 2탄 - Binary search(이진검색) 2. Binary search (이진 검색 알고리즘) - 리스트 안의 값들이 이미 sorted된 상태에서 실시. 중앙값을 가장 먼저 확인. 중앙값보다 찾는 값이 작으면, 왼쪽 파트에서 다시 탐색. 왼쪽 파트 중 중앙값 확인. 반대로 중앙값보다 찾는 값이 크면, 오른쪽 파트에서 다시 탐색. 오른쪽 파트 중 중앙값 확인. 계~속 이런 방식으로 확인해서 탐색함! # 예시 첫인덱스 = 0, 끝인덱스 = 6 찾는값: 20 (0+6)//2 = 3 → 중간인덱스 = 3 10 < 20 → 오른쪽 파트만 남김. (4+6)//2 = 5 → 중간인덱스 = 5 20 = 20 !! 인덱스 5 return됨!! (그냥 제가 짠 코드라서 뭔가 오류가 있을 수도 있음을 주의해 주세요...ㅎㅎㅎ) #버전1(by me) from typ.. 2022. 6. 26.
[백준] 6단계 - 10809번 (파이썬) check! 10809번 https://www.acmicpc.net/problem/10809 💖 모듈 string 이용 시 알파벳 리스트를 간단하게 생성 가능!! 💖 from string import * → ascii_lowercase 알파벳 소문자 → ascii_uppercase 알파벳 대문자 → ascii_letters 알파벳 전체 → digits 숫자 (0~9) 출처 : https://hengbokhan.tistory.com/175 # find함수 사용하지 않은 버전 import string lower = list(string.ascii_lowercase) # 알파벳소문자 리스트 생성 x = input() for i in lower: try: ans = x.index(i) except: ans = -1 prin.. 2022. 6. 26.
[백준] 6단계 - 2941번 (파이썬) check! 2941번 https://www.acmicpc.net/problem/2941 item = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=','z='] x= input() num = 0 for i in item: while i in x: x = x.replace(i, ' ', 1) num += 1 leng = len(x.replace(' ','')) print(num + leng) cf) replace 함수 X = 대상 문자열 A : 대체 당할 문자. B : 대체할 문자. ⇒ X.replace( A, B) : 모든 A를 B로 대체 ⇒ X.replace(A, B, 개수) : A를 지정한 개수만큼만 B로 대체. ⇒ 주의할 점: 문자열 X 자체는 변하지 않음. X = X.replace.. 2022. 6. 25.
Search algorithm(검색, 탐색 알고리즘) 1탄 - Linear search(선형탐색) 💗 검색/탐색 알고리즘 : 말그대로 특정 값을 찾는 알고리즘.💗 (cf) 알고리즘 성능은 보통 time complexity로 판단하므로 complexity를 개선하기 위한 다양한 시도가 이루어졌다... 1. Linear Search (선형 탐색) - 처음부터 순서대로 하나씩 확인하는 방법. 특정 값 찾으면 그 값의 위치(index)를 return함. - 맨 앞에 있는 값만 찾는다는 단점(?) 존재. ex) [1,2,3,2]에서 2를 찾는 경우, 맨 앞의 2만 찾음. # 직접 코딩 from typing import List, Any #이건 필수 아님. argument가 뭔기 명시할 때 필요해서 import한 것. def linear(L:List, val:Any) -> int: for i in range(l.. 2022. 6. 25.
반응형