프로그래머스
-
[프로그래머스] Python - 위장개발/알고리즘 2022. 1. 28. 22:39
코딩테스트 연습 - 위장 programmers.co.kr 해시의 레벨2 문제이다. 풀이 수 자체는 전화번호 목록보다 조금 낮지만 난이도는 비슷한 것 같다. 유사 딕셔너리를 이용해서 의상의 개수를 정수형으로 저장하고 이를 바탕으로 조합의 개수를 구했다. 소스코드는 아래 링크에 첨부한다. GitHub - Floodnut/Algorithm: 알고리즘 풀이 모음 알고리즘 풀이 모음. Contribute to Floodnut/Algorithm development by creating an account on GitHub. github.com
-
[프로그래머스] 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..