해시
-
[프로그래머스] Python - 전화번호 목록메모/알고리즘 2022. 1. 27. 23:58
코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 해시의 레벨2 문제이다. 접두어를 찾는 문제여서 어떻게 풀지 고민하다가 우선 정렬을 하였다. 문자열을 정렬하고 앞에서부터 겹치는 것이 있는지 판단하였다. 더보기 더보기 def solution(phone_book): phone_book.sort() num = phone_book[0] for i in range(1, len(phone_book)): if phone_book[i].startswith(num): return False else: num = phone..
-
[프로그래머스] Python - 완주하지 못한 선수메모/알고리즘 2022. 1. 27. 23:32
코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 프로그래머스 완주하지 못한 선수 문제다. 리스트를 순회해서 remove 함수로 하나씩 제거해가며 푸는 방식을 처음 선택했었는데 remove 함수의 시간복잡도가 O(n)이다보니 반복문에 중첩하면 시간이 오래 걸린다. 이 후에 딕셔너리에 빈도 수를 측정하는 방식을 선택하여 해결했다. 더보기 def solution(participant, completion): hash = dict() for _p in participant: if _p in has..