본문 바로가기

해시

(6)
[해시] 릿코드 438 Medium 'Find All Anagrams in a String' (Python) https://leetcode.com/problems/find-all-anagrams-in-a-string/ Find All Anagrams in a String - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 순서 상관 없이 s 안에 연속으로 p의 문자열이 나열되어 있다면 첫번째 인덱스를 반환한다. 2. 순서가 상관이 없으므로 Counter 라이브러리 사용 3. 시간복잡도를 효율적으로 사용하기 위해 여러 변수를 선언해둠 from collections i..
[해시] 릿코드 Medium 567 'Permutation in String' (Python) https://leetcode.com/problems/permutation-in-string/ Permutation in String - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 순서 상관없이 s2 내에 연속해서 s1의 값이 들어있으면 됨 그 값이 몇개 있는지만 확인하면 되므로 Counter 라이브러리 이용 from collections import Counter class Solution: def checkInclusion(self, s1: str, s2..
[해시] 프로그래머스 L2 '전화번호 목록' (Python) https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 한 번호가 다른 번호의 접두어인 경우를 확인하면 되므로 정렬시켜서 바로 앞, 뒤만 비교 #1차시도 - 테스트 13 실패, 효율성 1,2,3,4 실패 def solution(phone_book): answer = True dic = dict() for idx,i in enumerate(sorted(phone_book)): dic[i] = idx for i in..
[해시] 프로그래머스 L1 '완주하지 못한 선수' (Python) https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 동명이인을 구분하기 위해 참가자의 이름별로 1씩 더한다. (동명이인이라면 2가 되니까) 완주자 명단에 있는 이름은 1을 뺀다. 완주하지 못한 사람은 한 명뿐이므로 값이 1인 이름을 출력한다. #1차시도 - 정확성 1,3,4,5 효율성 1,2,3,4,5 실패 def solution(participant, completion): answer = ..
[해시] 백준 15829번 'Hashing' (Python) https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 아스키코드를 정수로(ord), 정수를 아스키코드로(chr) 변환하는 함수 사용 문제에 나와있는 공식대로 코딩 ''' 5 abcde 3 zzz 1 i ''' import sys input_data = sys.stdin.readline().rstrip() L = int(input_data.split()[0]) S = input_data.split()[1] hash = dict() for idx, i..
[자료구조/알고리즘] 해시(Hash) - 해시 테이블, 파이썬 딕셔너리(Python Dictionary) 해쉬 테이블 (Hash Table) 1. 해쉬 구조 * Hash Table: 키(Key)에 데이터(Value)를 저장하는 데이터 구조 - Key를 통해 바로 데이터를 받아올 수 있으므로, 속도가 획기적으로 빨라짐 - 파이썬 딕셔너리(Dictionary) 타입이 해쉬 테이블의 예: Key를 가지고 바로 데이터(Value)를 꺼냄 - 보통 배열로 미리 Hash Table 사이즈만큼 생성 후에 사용 (공간과 탐색 시간을 맞바꾸는 기법) - 단, 파이썬에서는 해쉬를 별도 구현할 이유가 없음 - 딕셔너리 타입을 사용하면 됨 2. 알아둘 용어 해쉬(Hash) 임의 값을 고정 길이로 변환하는 것 데이터를 다루는 기법 중 하나로 검색과 저장이 아주 유용한 구조 key와 value 쌍으로 데이터를 저장한다. * 해쉬 테..

LIST