본문 바로가기

전체 글

(171)
[프로그래머스][Python] 전화번호 목록 백준에서 트라이로 푼 문제이다. 이번엔 다른 사람 풀이를 분석해보자. def solution(phoneBook): phoneBook = sorted(phoneBook) for p1, p2 in zip(phoneBook, phoneBook[1:]): print(p1, p2) if p2.startswith(p1): return False return True print(solution(["12", "1235", "567", "88"])) 내장 함수에 대해 알아보자. 1. zip 순회할 수 있는 객체들을 받는다. 각 객체가 가지고 있는 원소를 Tuple 형태로 차례로 접근할 수 있는 반복자를 반환한다. (반복자란 내부의 요소를 순회하는 객체이다.) 2. startswith(시작 문자, 시작 지점) 문자열이 특..
[프로그래머스][Python] 완주하지 못한 선수 완주자의 이름을 key로 인원수를 value로 잡고, c_dic에 저장했다. 그리고 참가자 이름을 하나씩 꺼내서 비교했다. key에 해당 참가자 이름이 없거나 value에 해당 참가자 수가 0명이면, 그 사람은 완주하지 못한 참가자이다. def solution(participant, completion): c_dic = {} for key in completion: if not c_dic.get(key, 0): c_dic[key] = 1 else: c_dic[key] += 1 for key in participant: if (not c_dic.get(key, 0)) or c_dic[key] == 0: return key else: c_dic[key] -= 1 입력으로 'Hello'가 들어왔을 때, 'H'..
[자료구조] 해시[Hash] 해시함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 해시함수는 단방향 암호화 기법으로 해시를 만든다. (단방향 암호화 기법은 암호화는 가능하지만 복호화는 불가능한 알고리즘이다.) 추가적인 개념에 대해서도 알아보자. 키[Key] : 매핑 전 데이터의 값 해싱[Hashing] : 매핑하는 과정 해시값[Hashing Value] : 매핑 후 데이터의 값 해시 테이블[Hash Table] : 해시값에 의해 직접 접극이 가능한 데이터 구조 슬롯[Slot] : 한 개의 데이터를 저장할 수 있는 공간 해시함수의 장점은 아래와 같다. 1. 접근/탐색 속도가 빠르다 2. 키에 대한 데이터의 중복확인이 쉽다. (같은 입력값에 대해서는 같은 출력값을 보장하기 때문이다.) 파이썬에서는 딕셔너리[Dic..