반응형 분류 전체보기103 [백준] 1920번 : 수 찾기 유형 : 해시, 배열, 구현 [예제 입력] 5 4 1 5 2 3 5 1 3 7 9 5 [예제 출력] 1 1 0 0 1 핵심 아이디어 1. 특정 정수의 등장 여부만을 간단히 체크 2. dictionary 자료형을 해시처럼 사용 가능(python) 3. set 자료형을 이용하면 간단히 풀 수 있음 1. 내 풀이 - 시간 초과.. - 찾아보니 많은 사람들이 나처럼 틀리는 것 같다. (순차탐색 문제) 더보기 N = int(input()) list1 = list(map(int,input().split(' '))) M = int(input()) list2 = list(map(int,input().split(' '))) for i in range(M): num = list2[i] check = 0 for j in r.. 2021. 12. 13. [백준] 10930번 : SHA-256 유형 : 해시, 구현 [입력] Baekjoon [출력] 9944e1862efbb2a4e2486392dc6701896416b251eccdecb8332deb7f4cf2a857 풀이 import hashlib data = input() data = data.encode() hash_object = hashlib.sha256() hash_object.update(data) hex_dig = hash_object.hexdigest() print(hex_dig) 2021. 12. 13. [자료구조] 해쉬 테이블 1. 해쉬 구조 - 해쉬 테이블 : 키에 데이터를 저장하는 데이터 구조 - 키를 이용해 데이터 처리 속도를 높일 수 있음 - 보통 배열로 미리 해쉬 테이블 크기만큼 생성 후에 사용(공간과 탐색 시간을 맞바꿈) → 공간을 늘려서 충돌로 인한 별도의 자료구조를 만들지 않도록 함 - 파이썬에는 해쉬를 별도 구현할 이유가 없기 때문에 딕셔너리 타입을 사용 2. 용어 정리 ① 해쉬(Hash) : 임의 값을 고정 길이로 변환 ② 해쉬 테이블(Hash Table) : 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 ③ 해싱 함수(Hashing Function) : 키에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 ④ 해쉬 값(Hash Value) or 해쉬 주소(Hash Address) : 키를 .. 2021. 12. 13. [백준] 5397번 : 키로거 유형 : 스택, 구현, 그리디 [예제] 2 입력 : 오른쪽 스택에서 왼쪽 스택으로 원소 이동 ** 오른쪽 스택의 경우, 마지막 출력할 때 스택을 뒤집어서 출력해야 함! 강의에서 설명한 핵심 아이디어를 본 예시에 적용해서 해석(?)했다. 2. 풀이 밑에는 내 풀이(틀림)인데...다시 풀어봐야 한다.. 더보기 ## 백준 5397 L = int(input()) for _ in range(L): text = input() #text = [(i, idx) for idx,i in enumerate(text)] cursor = 0 # 커서 위치 temp = [] count = 0 for j in range(len(text)): if text[j] in ('','-'): k = j c1 = 0 c2 = 0 c3 = 0.. 2021. 12. 11. [백준] 1966번 : 프린터 큐 유형 : 스택, 그리디 [예시] 3 1 0 5 4 2 1 2 3 4 6 0 1 1 9 1 1 1 [출력] 1 2 5 예시를 통해 문제를 이해해보자. 테스트 케이스 개수가 3개인데 여기서 2번째, 3번째만 살펴보겠다. 1) 2번째 케이스 2) 3번째 케이스 풀이 test_case = int(input()) for _ in range(test_case): n, m = list(map(int, input().split(' '))) queue = list(map(int, input().split(' '))) queue = [(i,idx) for idx, i in enumerate(queue)] # (중요도, 인덱스) count = 0 while True: if queue[0][0] == max(queue, ke.. 2021. 12. 10. [백준] 11399번 : ATM 그리디 알고리즘을 생각하면 쉽게 풀린다. 즉, 매순간 최선을 선택해야 하므로 리스트를 오름차순하여 가장 적은 수가 앞으로 가야 한다. N = int(input()) _list = list(map(int,input().split(' '))) _list.sort() # 오름차순 _sum1 = 0 _sum2 = 0 for i in range(N): _sum1 = _sum1 + _list[i] _sum2 += _sum1 print(_sum2) ▷ 탐욕(그리디) 알고리즘 정리 https://leunco.tistory.com/50 [알고리즘] 탐욕(그리디) 알고리즘 1. 탐욕 알고리즘 : 최적의 해에 가까운 값을 구하기 위해 사용 → 매순간 최적이라고 생각되는 경우를 선택 2. 예시 1) 동전 - 지불해야 하는 값.. 2021. 12. 9. 이전 1 ··· 6 7 8 9 10 11 12 ··· 18 다음 반응형